Thanks. I did increase my session size to 100. So it cached sessions. The problem was with Single connection Object. All the threads were trying to use the same connection. Connection Object uses this Mutex before sending. So essentially this is a blocker.
java.lang.Thread.State: BLOCKED at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:39) - waiting to lock <1770d26> (a java.lang.Object) owned by "catalina-exec-110" t@210 at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60) at org.apache.activemq.ActiveMQConnection.doAsyncSendPacket(ActiveMQConnection.java:1214) at org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1208) at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1643) So I wanted to have more connections and I started with PooledConnectionFactory from activeMQ and configured to have 50 connections. This did not help either. The lock to create the pooled connection and obtain a connection has major impact on throughput. -- View this message in context: http://activemq.2283324.n4.nabble.com/PooledConnections-Poor-Performance-tp3446142p3447752.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.