PubSub+ Messaging API For C  7.31.0.7
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Flow Configuration Properties

Items that can be configured for a Flow. More...

Macros

#define SOLCLIENT_FLOW_PROP_BIND_BLOCKING   "FLOW_BIND_BLOCKING"
 This property controls whether or not to block in solClient_session_createFlow(). More...
 
#define SOLCLIENT_FLOW_PROP_BIND_TIMEOUT_MS   "FLOW_BIND_TIMEOUT_MS"
 The timeout (in milliseconds) used when creating a Flow in blocking mode. More...
 
#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_ID   "FLOW_BIND_ENTITY_ID"
 The type of object to which this Flow is bound. More...
 
#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_DURABLE   "FLOW_BIND_ENTITY_DURABLE"
 The durability of the object to which this Flow is bound. More...
 
#define SOLCLIENT_FLOW_PROP_BIND_NAME   "FLOW_BIND_NAME"
 The name of the Queue or Topic Endpoint that is the target of the bind. More...
 
#define SOLCLIENT_FLOW_PROP_WINDOWSIZE   "FLOW_WINDOWSIZE"
 The Guaranteed message window size for the Flow. More...
 
#define SOLCLIENT_FLOW_PROP_AUTOACK   "FLOW_AUTOACK"
 Deprecated: When set to SOLCLIENT_PROP_ENABLE_VAL, the API generates application level acknowledgments when the receive callback function returns. More...
 
#define SOLCLIENT_FLOW_PROP_ACKMODE   "FLOW_ACKMODE"
 Controls how acknowledgments are generated for received Guaranteed messages. More...
 
#define SOLCLIENT_FLOW_PROP_TOPIC   "FLOW_TOPIC"
 When binding to a Topic endpoint, the Topic may be set in the bind. More...
 
#define SOLCLIENT_FLOW_PROP_MAX_BIND_TRIES   "FLOW_MAX_BIND_TRIES"
 When creating a non-blocking Flow, or a Flow that is bound due to Session-connect, the maximum number of bind attempts to make. More...
 
#define SOLCLIENT_FLOW_PROP_ACK_TIMER_MS   "FLOW_ACK_TIMER_MS"
 The duration of the Flow acknowledgment timer (in milliseconds). More...
 
#define SOLCLIENT_FLOW_PROP_ACK_THRESHOLD   "FLOW_ACK_THRESHOLD"
 The threshold for sending an acknowledgement, configured as a percentage. More...
 
#define SOLCLIENT_FLOW_PROP_START_STATE   "FLOW_START_STATE"
 This property controls whether the Flow should be created in a start or stop state with respect to receiving messages. More...
 
#define SOLCLIENT_FLOW_PROP_SELECTOR   "FLOW_SELECTOR"
 A Java Message System (JMS) defined selector. More...
 
#define SOLCLIENT_FLOW_PROP_NO_LOCAL   "FLOW_NO_LOCAL"
 When a Flow has the No Local property enabled, messages published on the Session cannot appear in a Flow created in the same Session, even if the endpoint contains a subscription that matches the published message. More...
 
#define SOLCLIENT_FLOW_PROP_MAX_UNACKED_MESSAGES   "FLOW_MAX_UNACKED_MESSAGES"
 This property may only be set when the Flow property SOLCLIENT_FLOW_PROP_ACKMODE is set to SOLCLIENT_FLOW_PROP_ACKMODE_CLIENT. More...
 
#define SOLCLIENT_FLOW_PROP_BROWSER   "FLOW_BROWSER"
 Set browser mode on flow and signal it is a browser flow to broker on bind. More...
 
#define SOLCLIENT_FLOW_PROP_ACTIVE_FLOW_IND   "FLOW_ACTIVE_FLOW_IND"
 When a Flow has the Active Flow Indication property enabled, the application will receive flow events when the flow becomes active, or inactive. More...
 
#define SOLCLIENT_FLOW_PROP_REPLAY_START_LOCATION   "FLOW_REPLAY_START_LOCATION"
 When a Flow is created, the application may request replay of messages from the replay log, even messages that have been previously delivered and removed the from topic endpoint or queue. More...
 
#define SOLCLIENT_FLOW_PROP_MAX_RECONNECT_TRIES   "FLOW_MAX_RECONNECT_TRIES"
 When a flow is unbound by the message-broker due to "Replay Started" or "Service Unavailable", the API will attempt to reconnect the flow if this property is non-zero. More...
 
#define SOLCLIENT_FLOW_PROP_RECONNECT_RETRY_INTERVAL_MS   "FLOW_RECONNECT_RETRY_INTERVAL_MS"
 When a flow is reconnecting, the API will attempt to reconnect immediately, if that bind attempt fails it will wait for the retry interval before attempting to connect again. More...
 
#define SOLCLIENT_FLOW_PROP_REQUIRED_OUTCOME_FAILED   "FLOW_REQUIRED_OUTCOME_FAILED"
 Create a flow that allows solClient_flow_settleMsg() with SOLCLIENT_OUTCOME_FAILED. More...
 
#define SOLCLIENT_FLOW_PROP_REQUIRED_OUTCOME_REJECTED   "FLOW_REQUIRED_OUTCOME_REJECTED"
 Create a flow that allows solClient_flow_settleMsg() with SOLCLIENT_OUTCOME_REJECTED. More...
 

Detailed Description

Items that can be configured for a Flow.

Macro Definition Documentation

#define SOLCLIENT_FLOW_PROP_ACK_THRESHOLD   "FLOW_ACK_THRESHOLD"

The threshold for sending an acknowledgement, configured as a percentage.

The API sends a transport acknowledgment every N messages where N is calculated as this percentage of the flow window size if the endpoint's max-delivered-unacked-msgs-per-flow setting at bind time is greater than or equal to the transport window size. Otherwise, N is calculated as this percentage of the endpoint's max-delivered-unacked-msgs-per-flow setting at bind time.

The valid range is 1..75. Default: SOLCLIENT_FLOW_PROP_DEFAULT_ACK_THRESHOLD

#define SOLCLIENT_FLOW_PROP_ACK_TIMER_MS   "FLOW_ACK_TIMER_MS"

The duration of the Flow acknowledgment timer (in milliseconds).

The valid range is 20..1500. Default: SOLCLIENT_FLOW_PROP_DEFAULT_ACK_TIMER_MS

#define SOLCLIENT_FLOW_PROP_ACTIVE_FLOW_IND   "FLOW_ACTIVE_FLOW_IND"

When a Flow has the Active Flow Indication property enabled, the application will receive flow events when the flow becomes active, or inactive.

If the underlying session capabilities indicate that the broker does not support active flow indications, then solClient_session_createFlow() will fail immediately (SOLCLIENT_FAIL) and set the subCode SOLCLIENT_SUBCODE_FLOW_ACTIVE_FLOW_INDICATION_UNSUPPORTED. Default: SOLCLIENT_FLOW_PROP_DEFAULT_ACTIVE_FLOW_IND

Examples:
ex/activeFlowIndication.c.
#define SOLCLIENT_FLOW_PROP_AUTOACK   "FLOW_AUTOACK"

Deprecated: When set to SOLCLIENT_PROP_ENABLE_VAL, the API generates application level acknowledgments when the receive callback function returns.

This property is ignored if SOLCLIENT_FLOW_PROP_ACKMODE is specified. Default: SOLCLIENT_FLOW_PROP_DEFAULT_AUTOACK

#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_DURABLE   "FLOW_BIND_ENTITY_DURABLE"

The durability of the object to which this Flow is bound.

Default: SOLCLIENT_PROP_ENABLE_VAL, which means the endpoint is durable. When set to SOLCLIENT_PROP_DISABLE_VAL, a temporary endpoint is created.

Examples:
ex/flowControlQueue.c, ex/messageReplay.c, ex/messageSelectorsOnQueue.c, ex/perfADSub.c, ex/queueProvision.c, ex/RRGuaranteedReplier.c, ex/RRGuaranteedRequester.c, ex/simpleFlowToQueue.c, ex/simpleFlowToTopic.c, and ex/transactions.c.
#define SOLCLIENT_FLOW_PROP_BIND_NAME   "FLOW_BIND_NAME"
#define SOLCLIENT_FLOW_PROP_BIND_TIMEOUT_MS   "FLOW_BIND_TIMEOUT_MS"

The timeout (in milliseconds) used when creating a Flow in blocking mode.

The valid range is > 0. Default: SOLCLIENT_FLOW_PROP_DEFAULT_BIND_TIMEOUT_MS

#define SOLCLIENT_FLOW_PROP_BROWSER   "FLOW_BROWSER"

Set browser mode on flow and signal it is a browser flow to broker on bind.

A browser flow allows client applications to look at messages spooled on Endpoints without removing them. Messages are browsed from oldest to newest. The flow window size will be reduced as messages are received. Applications have to call solClient_flow_start() to get more messages. After being browsed, messages are still available for consumption over normal flows. However, it is possible to selectively remove messages (by calling solClient_flow_sendAck()) from the persistent store of an Endpoint, in this case, these removed messages will no longer be available for consumption. Default: SOLCLIENT_FLOW_PROP_DEFAULT_BROWSER

NOTE: If browsing a queue with an active consumer, no guarantee is made that the browser will receive all messages published to the queue. The consumer can receive and acknowledge messages before they are delivered to the browser.

Examples:
ex/simpleBrowserFlow.c.
#define SOLCLIENT_FLOW_PROP_MAX_BIND_TRIES   "FLOW_MAX_BIND_TRIES"

When creating a non-blocking Flow, or a Flow that is bound due to Session-connect, the maximum number of bind attempts to make.

The valid range is >= 1. Default: SOLCLIENT_FLOW_PROP_DEFAULT_MAX_BIND_TRIES

#define SOLCLIENT_FLOW_PROP_MAX_RECONNECT_TRIES   "FLOW_MAX_RECONNECT_TRIES"

When a flow is unbound by the message-broker due to "Replay Started" or "Service Unavailable", the API will attempt to reconnect the flow if this property is non-zero.

If this property is -1, it will retry forever. Otherwise it tries the configured maximum number of times. Default: SOLCLIENT_FLOW_PROP_DEFAULT_MAX_RECONNECT_TRIES

#define SOLCLIENT_FLOW_PROP_MAX_UNACKED_MESSAGES   "FLOW_MAX_UNACKED_MESSAGES"

This property may only be set when the Flow property SOLCLIENT_FLOW_PROP_ACKMODE is set to SOLCLIENT_FLOW_PROP_ACKMODE_CLIENT.

When set to a positive value, this property controls the maximum number of messages that may be unacknowledged on the Flow (solClient_flow_sendAck() is called to acknowledge messages and remove those messages from the message spool). This property cannot be used to increase the broker configured maximum number of acknowledged messages on the endpoint. When set to -1, the broker configured maximum controls how many unacknowledged messages may be received by the application. Valid values are -1 and >0. Default SOLCLIENT_FLOW_PROP_DEFAULT_MAX_UNACKED_MESSAGES

Examples:
ex/flowControlQueue.c.
#define SOLCLIENT_FLOW_PROP_NO_LOCAL   "FLOW_NO_LOCAL"

When a Flow has the No Local property enabled, messages published on the Session cannot appear in a Flow created in the same Session, even if the endpoint contains a subscription that matches the published message.

The broker that the Session connects to must have the No Local capability, and the capability must be enabled. If the broker the Session is connected to does not support No Local, a call to solClient_session_createFlow() returns SOLCLIENT_FAIL and subcode SOLCLIENT_SUBCODE_NO_LOCAL_NOT_SUPPORTED set.

Examples:
ex/noLocalPubSub.c.
#define SOLCLIENT_FLOW_PROP_RECONNECT_RETRY_INTERVAL_MS   "FLOW_RECONNECT_RETRY_INTERVAL_MS"

When a flow is reconnecting, the API will attempt to reconnect immediately, if that bind attempt fails it will wait for the retry interval before attempting to connect again.

Default: SOLCLIENT_FLOW_PROP_DEFAULT_RECONNECT_RETRY_INTERVAL_MS

#define SOLCLIENT_FLOW_PROP_REPLAY_START_LOCATION   "FLOW_REPLAY_START_LOCATION"

When a Flow is created, the application may request replay of messages from the replay log, even messages that have been previously delivered and removed the from topic endpoint or queue.

The replay start location may be SOLCLIENT_FLOW_PROP_REPLAY_START_LOCATION_BEGINNING to indicate that all messages available should be replayed. Or the replay start location may be a string that begins with "DATE:" followed by a date in one of two formats. The date may be a string representing a long integer, which is the number of seconds since the epoch - 0:00:00 Jan 1, 1970. The date may be a string as specified in RFC3339 - 'YYYY-MM-DDTHH:MM:SS[.1*DIGIT]Z' or 'YYYY-MM-DDTHH:MM:SS[.1*DIGIT]("+"/"-")HH:MM'. Additionally, the replay start location may be a replication-group-message-id string as returned by solClient_replicationGroupMessageId_toString(). Such a string starts with "rmid1:" and is a solClient_replicationGroupMessageId_t.

Examples:
ex/messageReplay.c, and ex/simpleFlowToQueue.c.
#define SOLCLIENT_FLOW_PROP_REQUIRED_OUTCOME_FAILED   "FLOW_REQUIRED_OUTCOME_FAILED"

Create a flow that allows solClient_flow_settleMsg() with SOLCLIENT_OUTCOME_FAILED.

Ignored on transacted sessions. Requires SOLCLIENT_SESSION_CAPABILITY_AD_APP_ACK_FAILED. Default: SOLCLIENT_FLOW_PROP_DEFAULT_REQUIRED_OUTCOME_FAILED

#define SOLCLIENT_FLOW_PROP_REQUIRED_OUTCOME_REJECTED   "FLOW_REQUIRED_OUTCOME_REJECTED"

Create a flow that allows solClient_flow_settleMsg() with SOLCLIENT_OUTCOME_REJECTED.

Ignored on transacted sessions. Requires SOLCLIENT_SESSION_CAPABILITY_AD_APP_ACK_FAILED. Default: SOLCLIENT_FLOW_PROP_DEFAULT_REQUIRED_OUTCOME_REJECTED

#define SOLCLIENT_FLOW_PROP_SELECTOR   "FLOW_SELECTOR"

A Java Message System (JMS) defined selector.

Examples:
ex/messageSelectorsOnQueue.c.
#define SOLCLIENT_FLOW_PROP_START_STATE   "FLOW_START_STATE"

This property controls whether the Flow should be created in a start or stop state with respect to receiving messages.

Flow start/stop state can be changed later through solClient_flow_start() or solClient_flow_stop(). Default SOLCLIENT_FLOW_PROP_DEFAULT_START_STATE

Examples:
ex/messageSelectorsOnQueue.c.
#define SOLCLIENT_FLOW_PROP_TOPIC   "FLOW_TOPIC"

When binding to a Topic endpoint, the Topic may be set in the bind.

This parameter is ignored for Queue or subscriber binding. The maximum length (not including NULL terminator) is SOLCLIENT_BUFINFO_MAX_TOPIC_SIZE. Default: SOLCLIENT_FLOW_PROP_DEFAULT_TOPIC

Examples:
ex/perfADSub.c, ex/RRGuaranteedReplier.c, ex/simpleFlowToTopic.c, and ex/transactions.c.
#define SOLCLIENT_FLOW_PROP_WINDOWSIZE   "FLOW_WINDOWSIZE"

The Guaranteed message window size for the Flow.

This sets the maximum number of messages that can be in transit (that is, the messages are sent from the broker but are not yet delivered to the application). The valid range is 1..255. Default: SOLCLIENT_FLOW_PROP_DEFAULT_WINDOWSIZE

Examples:
ex/perfADSub.c, and ex/simpleBrowserFlow.c.