Guaranteed Message Flows

For a client application to publish Guaranteed messages to or consume Guaranteed messages from Solace PubSub+, it must create one or more Flows within a Session. A Flow is an API object that allows applications to send or receive Guaranteed messages.

A subscriber Flow allows applications to receive Guaranteed messages from an endpoint, such as a Queue. Unless otherwise noted, references to Flows are to subscriber Flows.

Flows are also used when a client publishes Guaranteed messages. For JCSMP, a producer flow is created when an XMLMessageProducer is acquired. For the Java RTO, C, JavaScript, Node.js, and .NET APIs, a producer flow is automatically established when a client begins to send persistent messages in the Session. Refer to Publishing Guaranteed Messages.

Flow APIs for Receiving Messages

PubSub+ Messaging API Use

JCSMP

com.solacesystems.jcsmp.FlowReceiver

Java RTO

com.solacesystems.solclientj.core.handle.FlowHandle

C

solClient_session_createFlow(...)

solClient_opaqueFlow_pt

.NET

SolaceSystems.Solclient.Messaging.IFlow

JavaScript and Node.js

solace.MessageConsumer

Browsers

A Browser allows client applications to look at messages spooled on Queues from oldest to newest without removing them. After messages are browsed, they can still be received by consumers over Flows.

It is also possible to use a Browser to look at messages and selectively remove them from the Queue. Removed messages can no longer be consumed.

In the Java and .NET APIs, Browsers are objects. In the Java RTO and C APIs, Flows can act as Browsers when a specific FlowHandle or Flow property is set.

The JavaScript and Node.js APIs do not support message browsing.

Browser APIs

PubSub+ Messaging API Use

JCSMP

com.solacesystems.jcsmp.Browser

Java RTO

com.solacesystems.solclientj.core.handle.FlowHandle.PROPERTIES.BROWSER

C

SOLCLIENT_FLOW_PROP_BROWSER

.NET

SolaceSystems.Solclient.Messaging.IBrowser

JavaScript and Node.js

Not applicable