Guaranteed Message Flows

For a client application to publish Guaranteed messages to or consume Guaranteed messages from 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.

Clients also use flows when they publish Guaranteed messages. For the PubSub+ Java RTO API, PubSub+ C API, PubSub+ JavaScript API, PubSub+ Node.js API, and PubSub+ .NET API, a producer flow is automatically established at the beginning of a session. This allows the client to send persistent messages at any time while the session remains active. For more information, see Publishing Guaranteed Messages.

Flow APIs for Receiving Messages

PubSub+ Messaging API Use

PubSub+ Java RTO API

com.solacesystems.solclientj.core.handle.FlowHandle

PubSub+ C API

solClient_session_createFlow(...)

solClient_opaqueFlow_pt

PubSub+ .NET API

SolaceSystems.Solclient.Messaging.IFlow

PubSub+ JavaScript API and PubSub+ Node.js API

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 PubSub+ .NET API, browsers are objects. In the PubSub+ Java RTO API and PubSub+ C API, flows can act as browsers when a specific FlowHandle or flow property is set.

The PubSub+ JavaScript API and PubSub+ Node.js API do not support message browsing.

Browser APIs

PubSub+ Messaging API Use

PubSub+ Java RTO API

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

PubSub+ C API

SOLCLIENT_FLOW_PROP_BROWSER

PubSub+ .NET API

SolaceSystems.Solclient.Messaging.IBrowser

PubSub+ JavaScript API and PubSub+ Node.js API

Not applicable