Description
PooledConnectionFactory closes connections that are still referenced and should not be closed. Happens only when connection idle or expire time passes. Calling createConnection after that time will invalidate the connection and all previously obtained Sessions will behave as closed.
Due to default 30 second idle timeout, it is likely not to cause problems when:
- connection is continually in use
- all PooledConnection s are borrowed at startup
Client with session whose connection was prematurely closed will see similar stacktrace:
javax.jms.IllegalStateException: The Session is closed at org.apache.activemq.ActiveMQSession.checkClosed(ActiveMQSession.java:731) at org.apache.activemq.ActiveMQSession.configureMessage(ActiveMQSession.java:719) at org.apache.activemq.ActiveMQSession.createBytesMessage(ActiveMQSession.java:316) at org.apache.activemq.pool.PooledSession.createBytesMessage(PooledSession.java:168)