I think this maybe a multi thread sync bug of ActiveMQConnection, for example: Thread main : time 1. create a connection successfully; time 2. activemq server shutdown; time 3. send a message, learn activemq down state; time 4. ActiveMQConnection.close(); time 5. throws javax.jms.JMSException on ActiveMQConnection.doSyncSendPacket();
Thread ActiveMQ Connection Executor: unconnected : time 6. ActiveMQConnection.onException() begin; time 7. do nothing because of (!closing.get() && !closed.get()); So, ServiceSupport.dispose(this.transport) wouldn't be inoked, FailoverTransport.reconnectTask wouldn't be shutdown; ActiveMQ Task wakeup for ever, and doReconnect() returned at ((connectedTransport.get() != null && !doRebalance) || disposed || connectionFailure != null), and high cpu usage; -- View this message in context: http://activemq.2283324.n4.nabble.com/activemq5-5-client-high-cpu-usage-tp4675314p4675348.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.