Message Delivery Properties
This section discusses JMS properties associated with JMS message delivery.
The connection pool for Solace JMS is set by the application, and can't be set by the event broker.
Direct Transport
This property specifies whether to use a Direct Transport delivery mode for Non-Persistent messages.
- Type: Boolean
- Format: [true|false]
- A value of
true
enables Direct Transport; a value offalse
disables Direct Transport, so that Guaranteed message delivery mode is used. - Default: true
Property Source | Example |
---|---|
JNDI Connection Factory |
SolAdmin—Set through the Direct Transport box in the Transport Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box. CLI/SEMP—Set through Property List “transport-properties”, Property “direct-transport”. |
Direct Transport Optimization
This property specifies whether to optimize the API for the Direct Transport delivery mode. When optimization is enabled, a client application is restricted to creating one producer and one non-durable consumer. This allows all messages using the Direct Transport mode that are received to go directly to the single consumer. When this JMS property is enabled, attempting to create more than one producer or more than one non-durable consumer will return an exception.
- Type: Boolean
- Format: [true|false]
- Default: false
Property Source (listed in descending priority) | Example |
---|---|
System |
-DSolace_JMS_OptimizeDirect=true |
Initial Context |
env.put(SupportedProperty.SOLACE_JMS_OPTIMIZE_DIRECT, true); |
JNDI Properties File |
Solace_JMS_OptimizeDirect=true |
JNDI Connection Factory |
SolAdmin—Set through the Optimize Direct box in the Transport Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box. CLI/SEMP—Set through Property List “transport-properties”, Property “optimize-direct”. |
Deliver-To-One Override
This property specifies whether to override Deliver-To-One (DTO) settings. When enabled, the API can receive all DTO tagged messages. This property is only used with Direct Transport messages.
- Type: Boolean
- Format: [true|false]
- Default: true
Property Source (listed in descending priority) | Example |
---|---|
System |
-DSolace_JMS_DeliverToOneOverride=true |
Initial Context |
env.put( SupportedProperty. SOLACE_JMS_DELIVER_TO_ONE_OVERRIDE, true); |
JNDI Properties File |
Solace_JMS_DeliverToOneOverride=true |
JNDI Connection Factory |
SolAdmin—Set through the DTO Override box in the Messaging Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box. CLI/SEMP—Set through Property List “deliver-to-one-properties”, Property “deliver-to-one-override”. |
Deliver-To-One Subscriber Local Priority
This property specifies the priority that a client’s subscriptions have for receiving DTO messages published on the event broker that the client is directly connected to.
- Type: Integer
- Format: Valid values are 1 (the highest) through 4 (the lowest)
- Default: 1
Property Source (listed in descending priority) | Example |
---|---|
System |
-DSolace_JMS_SubscriberLocalDTOPriority=3 |
Initial Context |
env.put( SupportedProperty.SOLACE_JMS_SUBSCRIBER_LOCAL_DTO_PRIORITY, 3); |
JNDI Properties File |
Solace_JMS_SubscriberLocalDTOPriority=3 |
JNDI Connection Factory |
SolAdmin—Set through the Subscriber Local Priority box in the Messaging Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box. CLI/SEMP—Set through Property List “deliver-to-one-properties”, Property “subscriber-local-priority”. |
Deliver-To-One Subscriber Network Priority
This property specifies the priority that a client’s subscriptions have for receiving Deliver-To-One messages published by other event brokers in Solace PubSub+ (that is, by event brokers other than the one that the client is directly connected to).
- Type: Integer
- Format: Valid values are 1 (the highest) through 4 (the lowest).
- Default: 1
Property Source (listed in descending priority) | Example |
---|---|
System |
-DSolace_JMS_SubscriberNetworkDTOPriority=3 |
Initial Context |
env.put(SupportedProperty.SOLACE_JMS_SUBSCRIBER_NETWORK_DTO_PRIORITY, 3); |
JNDI Properties File |
Solace_JMS_SubscriberNetworkDTOPriority=3 |
JNDI Connection Factory |
SolAdmin—Set through the Subscriber Network Priority box in the Messaging Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box. CLI/SEMP—Set through Property List “deliver-to-one-properties”, Property “subscriber-network-priority”. |
Guaranteed Message Acknowledgment Threshold
This property specifies the threshold for sending a windowed message acknowledgment (set as a percentage of the window size) to the event broker.
This affects the flow-control window acknowledgment. The API sends a transport acknowledgment every N messages. 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. This threshold does not control application-level message acknowledgments. This property is only used for messages sent using the Guaranteed Transport mode, it is not used for messages sent using the Direct Transport mode.
- Type: Integer
- Format: Valid values are 1 through 75.
- Default: 60
Property Source | Example |
---|---|
JNDI Connection Factory |
SolAdmin—Set through the Acknowledgment Threshold box in the Messaging Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box. CLI/SEMP—Set through Property List “ad-properties”, Property “receive-ack-threshold”. |
Guaranteed Message Acknowledgment Timer
This property specifies the maximum amount of time (in milliseconds) that can pass before an acknowledgment for received messages must be sent to the event broker. This property is only used for messages sent using the Guaranteed Transport mode, it is not used for messages sent using the Direct Transport mode.
- Type: Integer
- Format: Valid values are 20 through 1500.
- Default: 1000 (that is, one second)
Property Source | Example |
---|---|
JNDI Connection Factory |
SolAdmin—Set through the AD Acknowledgment Time box (in the Message Reception Properties area) in the Messaging Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box. CLI/SEMP—Set through Property List “ad-properties”, Property “ack-timer”. |
Guaranteed Message Window Size
This property specifies the size of the sliding acknowledgment window used for acknowledging received messages. This property is only used for messages sent using the Guaranteed Transport mode, it is not used for messages sent using the Direct Transport mode.
A Guaranteed Message window size limits the number of messages that the API can receive before it must return an acknowledgment to the event broker to indicate that it received the messages in the window. After the API sends this acknowledgment, the Guaranteed Message window reopens so that further messages can be sent to the API.
- Type: Integer
- Format: Valid values are 1 through 255.
- Default: 18
Property Source | Example |
---|---|
JNDI Connection Factory |
SolAdmin—Set through the AD Window Size box in the Messaging Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box. CLI/SEMP—Set through Property List “ad-properties”, Property “ad-window-size”. |
Guaranteed Message Send Acknowledgment Time
This property specifies the amount of time (in milliseconds) that the publishing messaging API can wait for an acknowledgment from the event broker. The API automatically retransmits messages not acknowledged in time.
This property is only used for messages sent using the Guaranteed Transport mode, it is not used for messages sent using the Direct Transport mode.
- Type: Integer
- Format: Valid values are 20 through 60000.
- Default: 2000 (that is, two seconds)
Property Source | Example |
---|---|
JNDI Connection Factory |
SolAdmin—Set through the AD Acknowledgment box (in the Message Transmission Properties area) in the Messaging Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box. CLI/SEMP—Set through Property List “ad-properties”, Property “send-ack-timer”. |
Guaranteed Message Maximum Retransmits
This property has been deprecated and isn't used by JMS API versions 7.1.2.x and up. In versions 7.1.2.x and up the JMS API resends unacknowledged messages indefinitely.
This property specifies the maximum number of times the API can resend a message if it's not acknowledged by the event broker, or if a resend is required because the client disconnected and reconnected before receiving an acknowledgment.
This property is only used for messages sent using the Guaranteed Transport mode, it's not used for messages sent using the Direct Transport mode.
- Type: Integer
- Format: Valid values are 0 through 2147483647.
- Default: 30. (Note that this was changed from 15 to 30 in Solace PubSub+ Version 7.0.)
Property Source | Example |
---|---|
JNDI Connection Factory |
SolAdmin—Set through the Maximum Message Retransmits box (in the Message Transmission Properties area) in the Messaging Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box. CLI/SEMP—Set through Property List “ad-properties”, Property “send-max-resends”. |
Guaranteed Message Send Window Size
This property specifies the maximum number of Non-Persistent messages that a client can publish using Guaranteed Transport before the messaging API must receive an acknowledgment from the event broker. For Persistent messages, the Guaranteed message send window size is fixed at 1.
This property is only used for messages sent using the Guaranteed Transport mode, it is not used for messages sent using the Direct Transport mode.
- Type: Integer
- Format: Valid values are 1 through 255 for Non-Persistent messages.
- Default: 255
Property Source | Example |
---|---|
JNDI Connection Factory |
SolAdmin—Set through the Non-Persistent Message AD Window Size box (in the Message Transmission Properties area) in the Messaging Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box. CLI/SEMP—Set through Property List “ad-properties”, Property “send-ad-window-size”. |
Guaranteed Message Reconnect Retry Count
In JMS API versions 10.7.0 and up, the API automatically attempts to reconnect a Flow when an error response is received, as long as the reason given in the error response string is one of the following:
- Replay Started
- Service Unavailable—Indicates that either the queue or topic endpoint was shutdown or deleted, or Assured Delivery services on the broker have been disabled.
JMS Consumers receive no data until the Flow is reconnected. If the Flow reconnect attempt eventually fails, then the existing Flow failure error path is taken.
This property specifies the maximum number of Flow reconnect attempts to make after the error response is received. You can disable this behavior by setting the reconnect retry count to 0.
- Type: Integer
- Format: Valid values are -1 through 2147483647.
- Default: -1 (indefinite, in other words try forever)
Property Source | Example |
---|---|
JNDI Connection Factory |
CLI/SEMP—Set through Property List “ad-properties”, Property “receive-reconnect-retries”. |
Guaranteed Message Reconnect Retry Interval
This property specifies the wait time between Flow reconnect attempts.
- Type: Integer
- Format: Valid values are 1 through 2147483647.
- Default: 3000 (that is, three seconds)
Property Source | Example |
---|---|
JNDI Connection Factory |
CLI/SEMP—Set through Property List “ad-properties”, Property “receive-reconnect-retry-wait”. |