Chapter 4. Configuration
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 setMaxConnections(int) method. 4.1. Connection options These options affect how the JMS pool creates and manages the connections in the pool. The pooled 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. maxConnections The maximum number of connections for a single pool. The default is 1. connectionIdleTimeout 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. connectionCheckInterval The time in milliseconds between periodic checks for expired connections. The default is 0, meaning the check is disabled. useProviderJMSContext If enabled, use the JMSContext classes of the underlying JMS provider. It is disabled by default. In normal operation, the pool uses its own generic JMSContext implementation 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 JMSContext API are not managed by the pool. 4.2. Session options These options affect the behavior of sessions that are created from pooled connections. maxSessionsPerConnection 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. blockIfSessionPoolIsFull If enabled, block createSession() until a session becomes available in the pool. It is enabled by default. If disabled, calls to createSession() throw an IllegalStateException if no session is available. blockIfSessionPoolIsFullTimeout The time in milliseconds before a blocked call to createSession() throws an IllegalStateException . The default is -1, meaning the call blocks forever. useAnonymousProducers If enabled, use a single anonymous JMS MessageProducer for 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 MessageProducer instance.