The timeout in milliseconds for synchronous message receives performed
by message-driven bean listener sessions in the non-ASF mode of operation.
You should set this property to a non-zero value only if you want to enable
the non-ASF mode of operation for all message-driven bean listeners on the
application server.
The message listener service has two modes of operation, Application Server
Facilities (ASF) and non-Application Server Facilities (non-ASF).
- The ASF mode is meant to provide concurrency and transactional support
for applications. For publish/subscribe message-drive beans, the ASF mode
provides better throughput and concurrency, because in the non-ASF mode the
listener is single-threaded.
- The non-ASF mode is mainly for use with generic JMS providers that do
not support JMS ASF, which is an optional extension to the JMS specification.
The non-ASF mode is also transactional but, because the path length is shorter
than the ASF mode, usually provides improved performance.
Use non-ASF if:
- Your generic JMS provider does not provide JMS ASF support
- You are using message-driven beans with WebSphere topic connections with
the DIRECT port, because the embedded publish/subscribe broker using that
port does not support XA transactions or JMS ASF.
- Message order is a strict requirement
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
|
Recommended |
If a transaction timeout occurs, the message must recycle causing
extra work. If you want to use the non-ASF mode, set this property to lower
than the transaction timeout, but leave spare at least the maximum duration
of your message-driven bean's onMessage() method. For example, if your message-driven
bean's onMessage() method typically takes a maximum of 10 seconds, and the
transaction timeout is set to 120 seconds, you might set the NON.ASF.RECEIVE.TIMEOUT
property to no more than 110000 (110000 milliseconds, that is 110 seconds). |