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 of false disables Direct Transport, so that Guaranteed message delivery mode is used.
  • Default: true

Direct Transport Property

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

Direct Transport Optimization Property

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

Deliver-To-One Override Property

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

Deliver-To-One Subscriber Local Property

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

Deliver-To-One Subscriber Network Property

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

Guaranteed Message Acknowledgment Threshold Property

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)

Guaranteed Message Acknowledgment Timer Property

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

Guaranteed Message Window Size Property

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)

Guaranteed Message Send Acknowledgment Time Property

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.)

Guaranteed Message Maximum Retransmits Property

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

Guaranteed Message Send Window Size Property

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)

Guaranteed Message Reconnect Retry Count Property

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)

Guaranteed Message Reconnect Retry Interval Property

Property Source Example

JNDI Connection Factory

CLI/SEMP—Set through Property List “ad-properties”, Property “receive-reconnect-retry-wait”.