Message listener service custom properties
Use this panel to view or change custom properties of the message listener service.
From the admin console, click...
Servers > Server Types > WebSphere application servers > server > [Communications] Messaging > Message Listener Service > Custom Properties.
Use the Custom properties page to define the following properties for use by the message listener service:
- DYNAMIC.CONFIGURATION.ENABLED
- ENABLE.ZOS.LP.RECOVERY
- MAX.RECOVERY.RETRIES
- MDB.THROTTLE.THRESHOLD.LOW.EQUALS.HIGH
- MQJMS.POOLING.THRESHOLD
- MQJMS.POOLING.TIMEOUT
- NON.ASF.RECEIVE.TIMEOUT
- NON.ASF.BMT.ROLLBACK.ENABLED
- RECOVERY.RETRY.INTERVAL
- SERVER.SESSION.POOL.REAP.TIME
- SERVER.SESSION.POOL.UNUSED.TIMEOUT
- SERVER.SESSION.POOL.UNUSED.TIMEOUT.lpname
DYNAMIC.CONFIGURATION.ENABLED
This property controls whether the application server on which a listener port is created requires to be restarted. Set to true to enable dynamic configuration.
Information Value Data type Boolean Default False (not selected)
(ZOS) ENABLE.ZOS.LP.RECOVERY
This property controls listener port behavior when an application server connects to IBM MQ for z/OS.
Enable this property if the environment requires either of the following capabilities:
- A listener port to attempt to recover if a connection between the application server and IBM MQ has been lost, for example if the queue manager has been stopped. If we do not enable this property, the listener port does not attempt to recover after a queue manager has been stopped.
- Multiple workload management classifications to be configured for a listener port. If we do not enable this property, messages remain on the IBM MQ queue when multiple workload management classifications are configured for a listener port.
Restart the server after adding the property.
If we are connecting to IBM MQ for z/OS through bindings connections, you also need to apply IBM MQ APAR PK53912, which is provided in IBM MQ v6.0.2.4.
Information Value Data type Boolean Default True (enabled)
MAX.RECOVERY.RETRIES
The maximum number of times that a listener port managed by this service tries to recover from a failure before giving up and stopping. When stopped the associated listener port is changed to the stop state. The interval between retry attempts is defined by the RECOVERY.RETRY.INTERVAL property.
A failure can be caused by either of the following conditions:
- An unexpected error has occurred when a listener port tries to get a message from the JMS provider.
- The connection between the application server and the JMS provider has been lost, usually due to a network error.
Information Value Data type Integer Units Retry attempts Default 5 Range 0 (no retries) through 2147483647
MDB.THROTTLE.THRESHOLD.LOW.EQUALS.HIGH
A throttling indicator that allows controller message processing to continue when the low message threshold is reached. When the Message Listener service has been configured with the custom property of MDB.THROTTLE.THRESHOLD.LOW.EQUALS.HIGH and set to a value of "true", the low threshold value is set internally to the high threshold value (which is the externally-set Maximum sessions property of the listener port).
Information Value Data type String Default True
MQJMS.POOLING.THRESHOLD
The maximum number of unused connections in the pool.
An MQSimpleConnectionManager allocates connections on a most-recently-used basis, and destroys connections on a least-recently-used basis. By default, a connection is destroyed if there are more than ten unused connections in the pool.
Information Value Data type Integer Units Number of connections Default 10
MQJMS.POOLING.TIMEOUT
The number of milliseconds after which a connection in the pool is destroyed if it has not been used.
An MQSimpleConnectionManager allocates connections on a most-recently-used basis, and destroys connections on a least-recently-used basis. By default, a connection is destroyed if it has not been used for five minutes.
Information Value Data type Integer Units Milliseconds Default 5 minutes
NON.ASF.RECEIVE.TIMEOUT
The timeout in milliseconds for synchronous message receives performed by message-driven bean listener sessions in the non-ASF mode of operation.
The message listener service has two modes of operation, Application Server Facilities (ASF) and non-Application Server Facilities (non-ASF):
- ASF mode provides concurrency and transactional support for applications. For publish/subscribe message-drive beans, ASF mode provides better throughput and concurrency, because in the non-ASF mode the listener is single-threaded.
- Non-ASF mode is mainly for use with third-party messaging providers that do not support JMS ASF, which is an optional extension to the JMS specification. Non-ASF mode is also transactional but, because the path length is shorter than for ASF mode, usually provides improved performance.
To enable the non-ASF mode of operation for all message-driven bean listeners on the application server, set this property to a non-zero value.
(ZOS) Non-ASF mode cannot be selected on z/OS systems, so we must not set a non-zero value for this property in this case.
If our messaging system is running in non-ASF mode, to avoid unwanted transaction timeouts, we must allow a sufficient amount of time for processing to be completed before the total transaction lifetime timeout is reached. Therefore, make sure that the value specified for the NON.ASF.RECEIVE.TIMEOUT message listener service custom property is smaller than the value specified for the Total transaction lifetime timeout transaction service property, and also that the difference between the values of the two properties is greater than the amount of time that the onMessage() method of the message-driven bean (MDB) takes to process the message.
For example, if the message-driven bean onMessage() method typically takes a maximum of 10 seconds, and the transaction timeout is set to 120 seconds, we might set the NON.ASF.RECEIVE.TIMEOUT property to no more than 110000 milliseconds (that is, 110 seconds).
Information Value Data type Integer Units Milliseconds Default ASF mode (custom property not created) Range 0 or greater milliseconds
- 0
- Non-ASF mode is disabled
- 1 or more
- The timeout in milliseconds for non-ASF message-driven bean listener synchronous session receives
NON.ASF.BMT.ROLLBACK.ENABLED
When the non-Application Server Facilities (non-ASF) mode of operation is in use (because we have set the NON.ASF.RECEIVE.TIMEOUT property to a non-zero value), and a message-driven bean that uses bean-managed transactions generates a runtime exception, the NON.ASF.BMT.ROLLBACK.ENABLED property determines whether messages are returned to the destination.
The message listener service has two modes of operation, Application Server Facilities (ASF) and non-Application Server Facilities (non-ASF):
- ASF mode provides concurrency and transactional support for applications. For publish/subscribe message-drive beans, ASF mode provides better throughput and concurrency, because in the non-ASF mode the listener is single-threaded.
- Non-ASF mode is mainly for use with third-party messaging providers that do not support JMS ASF, which is an optional extension to the JMS specification. Non-ASF mode is also transactional but, because the path length is shorter than for ASF mode, usually provides improved performance.
(ZOS) Non-ASF mode cannot be selected on z/OS systems.
When false (default), the message is automatically acknowledged before it is passed to the message-driven bean.
When true, the message listener service sends a message acknowledgement to the client after the message is successfully processed by the message-driven bean, and the message listener service requests recovery of any message for which the bean generates an exception.
Information Value Data type Boolean Default False
RECOVERY.RETRY.INTERVAL
The time in seconds between retry attempts by a listener port to recover from a failure. The maximum number of retry attempts is defined by the MAX.RECOVERY.RETRIES property.
A failure can be caused by either of the following conditions:
- An unexpected error has occurred when a listener port tries to get a message from the JMS provider.
- The connection between the application server and the JMS provider has been lost, usually due to a network error.
Information Value Data type Integer Units Seconds Default 60 Range 1 through 2147483647
SERVER.SESSION.POOL.REAP.TIME
The time in seconds between checks on server session pools. To enable server session pool monitoring, set this property to a non-negative value.
The SERVER.SESSION.POOL.REAP.TIME custom property is not applicable if our messaging system is running in non-ASF mode.
Information Value Data type Integer Units Seconds Default -1 (disabled) Range -2147483648 through 2147483647
SERVER.SESSION.POOL.UNUSED.TIMEOUT
The default server session pool timeout in seconds.
When set to a non-negative value, it is compared to the time that has elapsed since a server session was used. If the timeout value is less than the elapsed time, the server session is removed from the server session pool and its JMS session is returned to the JMS session pool. For example, if the timeout value is one second and the time that has elapsed since a particular server session was used is two seconds, that server session is removed from the server session pool and its JMS session is returned to the JMS session pool.
The SERVER.SESSION.POOL.UNUSED.TIMEOUT custom property is not applicable if our messaging system is running in non-ASF mode.
Information Value Data type Integer Units Seconds Default -1 (disabled) Range -2147483648 through 2147483647
SERVER.SESSION.POOL.UNUSED.TIMEOUT.lpname
This property overrides the default SERVER.SESSION.POOL.UNUSED.TIMEOUT value for the listener port with the name defined for lpname. This value applies to all message-driven beans that use the specified listener port.
If this override is set to a non-negative value, it overrides the SERVER.SESSION.POOL.UNUSED.TIMEOUT property, even if the SERVER.SESSION.POOL.UNUSED.TIMEOUT property has a negative value.
If this override is set to a negative value, it disables server session pool monitoring for the specified listener port.
The SERVER.SESSION.POOL.UNUSED.TIMEOUT.lpname custom property is not applicable if our messaging system is running in non-ASF mode.
Information Value Data type Integer Units Seconds Default Not set Range -2147483648 through 2147483647
Related:
Message processing in ASF mode and non-ASF mode Avoiding transaction timeouts in non-ASF mode Configure the message listener service Monitor server session pools for listener ports