Chapter 4. Configuration
The AMQ JMS Pool
ConnectionFactory implementation exposes several configuration options that control the behavior of the pool and the JMS resources it manages.
The configuration options are exposed as
set methods on the
JmsPoolConnectionFactory object. For example, the maxConnections option is set using the
4.1. Connection options
These options affect how the JMS pool creates and manages the connections in the pool.
ConnectionFactory creates a pool of connections for each user and password combination used to create a connection, plus a separate pool for those without a username or password. If you require a more fine-grained division of connections into pools, you must explicitly create distinct pool instances.
- The maximum number of connections for a single pool. The default is 1.
- The time in milliseconds before a connection not currently on loan can be evicted from the pool. The default is 30 seconds. A value of 0 disables the timeout.
- The time in milliseconds between periodic checks for expired connections. The default is 0, meaning the check is disabled.
If enabled, use the
JMSContextclasses of the underlying JMS provider. It is disabled by default.
In normal operation, the pool uses its own generic
JMSContextimplementation to wrap connections from the pool instead of using the provider implementation. The generic implementation might have limitations the provider implementation does not. However, when enabled, connections from the
JMSContextAPI are not managed by the pool.
4.2. Session options
These options affect the behavior of sessions that are created from pooled connections.
The maximum number of sessions for each connection. The default is 500. A negative value removes any limit.
If the limit is exceeded,
createSession()either blocks or throws an exception, depending on configuration.
If enabled, block
createSession()until a session becomes available in the pool. It is enabled by default.
If disabled, calls to
IllegalStateExceptionif no session is available.
The time in milliseconds before a blocked call to
IllegalStateException. The default is -1, meaning the call blocks forever.
If enabled, use a single anonymous JMS
MessageProducerfor all calls to
createProducer(). It is enabled by default.
In rare cases, this behavior is undesirable. If disabled, every call to
createProducer()results in a new