JMSConsumer could not get a session from initial connection provided by org.apache.activemq.jms.pool.PooledConnectionFactory

Solution Verified - Updated -

Issue

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.

Environment

  • JBoss Fuse
    • 6.3

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.