此内容没有您所选择的语言版本。
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 theJMSContext
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 anIllegalStateException
if no session is available.- blockIfSessionPoolIsFullTimeout
-
The time in milliseconds before a blocked call to
createSession()
throws anIllegalStateException
. The default is -1, meaning the call blocks forever. - useAnonymousProducers
If enabled, use a single anonymous JMS
MessageProducer
for all calls tocreateProducer()
. It is enabled by default.In rare cases, this behavior is undesirable. If disabled, every call to
createProducer()
results in a newMessageProducer
instance.