Details
-
Bug
-
Resolution: Done
-
Major
-
JBoss A-MQ 6.1
-
None
-
None
Description
The ActiveMQ code contains a generic (i.e., not ActiveMQ-specific) connection pool, whose implementation is in org.org.apache.activemq.jms.pool. This pool can be used by (for example) Camel routes that communicate with message brokers other than Active MQ.However, this pool is unable to detect disconnections at the transport level. If the broker goes down and is restarted, the connections in the pool remain invalid, and this situation persists indefinitely. If the pool is fully populated, then it will never make a new connection to the broker. If it is partially populated, then eventually there may be a mixture of good and bad connections in the pool. Applications may receive a good or a bad connection.The ActiveMQ-specific pool in org.org.apache.activemq.pool has failure detection logic that handles connection failures by evicting failed connections from the pool. The Spring CachedConnectionFactory also handles connection failures, but by installing JMS exception listeners on the connection. The generic JMS pool, however, appears to use neither of these mechanisms, and cannot recover from connection failures.