API Properties
The following properties can be used to configure the Solace JMS API:
- Callback on I/O Thread
- Consumer Default Flow Congestion Limit
- Consumer Dispatcher Queue Size
- Dead Message Queue Name
- Delayed Start Override
- Dynamic Durables
- Frequency Manager Maximum Reconnects
- Producer Dispatcher Queue Size
- Respect Time-To-Live
- Use Default Context
Callback on I/O Thread
This property specifies whether to call Message Listeners directly from the I/O thread. When this property is set to false (the default), Message Listeners are called from a consumer notification thread. For more information, refer to Receiving Message Asynchronously.
To avoid possible indeterminate behavior, it is recommended that you leave this property to the default value of false. Contact Solace before enabling this property.
- Type: Boolean
- Format: [true|false]
- Default: false
Property Source (listed in descending priority) | Example |
---|---|
System |
-DSolace_JMS_MsgCallbackOnIOThread=true |
Initial Context |
env.put(SupportedProperty.SOLACE_JMS_MSG_CALLBACK_ON_IO_THREAD, true); |
JNDI Properties File |
Solace_JMS_MsgCallbackOnIOThread=true |
JNDI Connection Factory |
SolAdmin—Set through the Message Callback on IO Thread 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 “transport‑properties”, Property “msg‑callback‑on‑io‑thread”. |
Consumer Default Flow Congestion Limit
This property specifies the default consumer's congestion limit. If a Consumer accumulates more than this number of messages not yet handled by the consuming application, the API temporarily suspends reading from the underlying TCP connection.
- Type: Integer
- Format: Valid values are 0 or greater.
- Default: 5000
Property Source | Example |
---|---|
System |
-DSolace_JMS_ConsumerDefaultFlowCongestionLimit=5000 |
Consumer Dispatcher Queue Size
This property specifies the number of messages that can be enqueued by the consumer notification dispatcher queue.
- Type: Integer
- Format: Valid values are 0 or greater.
- Default: 75000
Property Source | Example |
---|---|
System |
-DSolace_JMS_ConsumerDispatcherQueueSize=75000 |
Dead Message Queue Name
This property is used to compare against the queue name used in the Session.createQueue(String queueName)
call to prevent the API from attempting to create the DMQ when dynamic durables is activated.
- Type: String
- Format: Any valid queue name
- Default:
#DEAD_MSG_QUEUE
Property Source | Example |
---|---|
System |
-DSolace_JMS_DeadMSGQueueName=#DEAD_MSG_QUEUE |
Delayed Start Override
Instead of automatically starting a consumer after JMS connection is started, by default, the Solace JMS implementation delays starting durable consumers or non‑durable consumers that use Guaranteed Transport until the first time receive()
or setMessageListener()
is called.
The delayed start prevents an error from being returned because the following situation:
A JMS connection start implicitly starts consumers when they are created. Therefore, with the Solace JMS implementation, after a message consumer is created, it is implicitly started as a synchronous consumer (that is, without a consumer without a message listener), and an error can be returned when a message listener is then set for that consumer.
Setting the Delayed Start Override property to false
overrides the delaying behavior so that the consumer is started on calling start()
.
- Type: Boolean
- Format: [true|false]
- Default: true (that is, not overridden).
Property Source | Example |
---|---|
System |
-DSolace_JMS_DelayedStartOverride=true |
Initial Context |
env.put(SupportedProperty.SOLACE_JMS_DELAYED_START_OVERRIDE, false); |
JNDI Properties File |
Solace_JMS_DelayedStartOverride=true |
Dynamic Durables
This property specifies whether queues or topic endpoints (which are used to support durable subscription names), are to be created on the event broker when the corresponding Session.createDurableSubscriber()
or Session.createQueue()
is called. A created endpoint uses a Respect Time to Live (TTL) setting according to the JMS “Respect Time-to-Live” property (refer to Respect Time-To-Live).
- Type: Boolean
- Format: [true|false]
- Default: false
Property Source (listed in descending priority) | Example |
---|---|
Initial Context |
env.put(SupportedProperty.SOLACE_JMS_DYNAMIC_DURABLES, true); |
JNDI Properties File |
Solace_JMS_DynamicDurables=true |
JNDI Connection Factory |
SolAdmin—Set through the Dynamic Durables box in the Endpoint Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box. CLI/SEMP—Set through Property List “dynamic‑endpoint‑properties”, Property “dynamic‑durables”. |
Frequency Manager Maximum Reconnects
This property specifies the maximum number of reconnects to allow before the reconnect frequency manager closes a connection.
- Type: Integer
- Format: Valid values are 0 or greater.
- Default: 10
Property Source | Example |
---|---|
System |
-DSolace_JMS_ReconnectFreqManagerMaxReconnects=5 |
Producer Dispatcher Queue Size
The producer notification dispatcher queue is used by the API to notify Producers of message acknowledgments and message publishing exceptions. This property specifies the maximum number of message acknowledgments and exceptions that can be enqueued by the Producer Notification Dispatcher Queue.
- Type: Integer
- Format: Valid values are 0 or greater.
- Default: 2000 elements
Property Source | Example |
---|---|
System |
-DSolace_JMS_ProducerDispatcherQueueSize=10000 |
Respect Time-To-Live
This property is used to indicate whether dynamically created durable topic endpoints or queues are set to respect TTL (refer to Time-to-Live).
- Type: Boolean
- Format: [true|false]
- Default: true
Property Source (listed in descending priority) | Example |
---|---|
Initial Context |
env.put(SupportedProperty.SOLACE_JMS_RESPECT_TIME_TO_LIVE, true); |
JNDI Properties File |
Solace_JMS_RespectTimeToLive=true |
JNDI Connection Factory |
SolAdmin—Set through the Respect TTL box in the Endpoint Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box. CLI/SEMP—Set through Property List “dynamic‑endpoint‑properties”, Property “respect‑ttl”. |
Use Default Context
This property specifies whether to use a new context or reuse the default context for new JMS connections.
- Type: Boolean
- Format: [true|false]
- Default: false (creates a new Context for every connection)
Property Source (listed in descending priority) | Example |
---|---|
Initial Context |
env.put(SupportedProperty.SOLACE_JMS_USE_DEFAULT_CONTEXT, true); |
JNDI Properties File |
Solace_JMS_UseDefaultContext=true |