-
Bug
-
Resolution: Done
-
Major
-
None
-
JBoss A-MQ 6.3
-
None
-
User Experience
-
-
Workaround Exists
-
This issue occurs during deployment of multiple camel route bundles which uses JMSConsumer. Although appropriate vales are set into maxConnections and maximumActiveSessionPerConnection in JMSConfiguration, JMSConsumer thread could not get a session and wait it forever with following stack trace:
Camel (casexxxx_02_context1) thread #3 - JmsConsumer[QUEUE1]" #158 daemon prio=5 os_prio=0 tid=0x00007f0b14340800 nid=0x16f9 in Object.wait() [0x00007f0b5c980000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:1151) - locked <0x00000000cd9cac60> (a org.apache.commons.pool.impl.GenericKeyedObjectPool$Latch) at org.apache.activemq.jms.pool.ConnectionPool.createSession(ConnectionPool.java:141) at org.apache.activemq.jms.pool.PooledConnection.createSession(PooledConnection.java:167) at org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:196) at org.springframework.jms.listener.DefaultMessageListenerContainer.access$1400(DefaultMessageListenerContainer.java:121) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.initResourcesIfNecessary(DefaultMessageListenerContainer.java:1123) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1102) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1095) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:992) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748)
It seems like JMSConsumer could not get a session only from initial connection provided by org.apache.activemq.jms.pool.PooledConnectionFactory.