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, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content