# jmspool
**Repository Path**: mirrors_fusesource/jmspool
## Basic Information
- **Project Name**: jmspool
- **Description**: JMS Connection Pool
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-08
- **Last Updated**: 2026-05-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Generic XA-aware JMS Connection Pool
====================================
_This project has been merged into the [Apache ActiveMQ](http://activemq.apache.org) ([activemq-jms-pool](http://search.maven.org/#search|ga|1|activemq-jms-pool) artifact) and won't be actively developed anymore. The first version of the ActiveMQ with the JMS pool included is 5.9.0. Please use ActiveMQ pool instead._
This library provides a generic JMS connection pool with 3 different falvors:
* a simple [PooledConnectionFactory](https://github.com/fusesource/jmspool/blob/master/src/main/java/org/fusesource/jms/pool/PooledConnectionFactory.java)
* an XA-aware [XAPooledConnectionFactory](https://github.com/fusesource/jmspool/blob/master/src/main/java/org/fusesource/jms/pool/XaPooledConnectionFactory.java)
* a [JCAPooledConnectionFactory](https://github.com/fusesource/jmspool/blob/master/src/main/java/org/fusesource/jms/pool/JcaPooledConnectionFactory.java) dedicated to leverage the Geronimo/Aries transaction manager
# Configuration
## Base configuration
The PooledConnectionFactory has the following mandatory parameter:
* connectionFactory: the underlying JMS ConnectionFactory
and the following optional parameters:
* maximumActive: maximum number of sessions for a given connection (used when no poolFactory is given, default to 500)
* maxConnections: the maximum number of connections to use (default to 1)
* idleTimeout: allow connections to expire after the given idle timeout (default to 30s)
* blockIfSessionPoolIsFull: blocks if the pool is full when retrieving a session (default to true)
* expiryTimeout: allow connections to expire, irrespective of load or idle time (default to 0, meaning no expiry)
* poolFactory: the underlying ObjectPoolFactory to customize the pool itself (based on Apache Commons-Pool)
## XA connection pool
In addition to the above settings, the XAPooledConnectionFactory has the following mandatory parameter:
* transactionManager: the JTA TransactionManager to use
and the following optional parameters:
* xaConnectionFactory: an XAConnectionFactory which can be set if the XAConnectionFactory does not implement ConnectionFactory
## JCA connection pool
To work with the Geronimo Transaction Manager and allow proper recovery, a specific connection pool should be used.
In addition to the above settings, the JCAPooledConnectionFactory has the following mandatory paramter:
* name: the name of the resource manager (used by the JTA transaction manager to detect if 2 phase commit must be used)
The resource manager name has to uniquely identify the broker.
To be able to start the recovery process, the [GenericResourceManager](https://github.com/fusesource/jmspool/blob/master/src/main/java/org/fusesource/jms/pool/GenericResourceManager.java) must be configured.
# Examples
## Simple pool using blueprint
## JCA pool