You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by "Tlholoe, Peter" <PT...@fnb.co.za> on 2013/05/30 10:47:27 UTC

Thread gets BLOCKED on ActiveMQ

Good Day,

We currently have a problem with our ActiveMQ periodically hanging in PROD, and I did take a thread dumps for a period of 10 minutes, and there are a couple of threads that are getting blocked. Please see below all the threads that are blocked.  Can you please help ascertain what might be happening here.



Can you please help me diagnose what might be happening here

Thread One
"ActiveMQ Transport: tcp:///{IP}:40621" daemon prio=10 tid=0x000000005ddb1800 nid=0x3d4d waiting for monitor entry [0x00002b3c87634000]
     java.lang.Thread.State: BLOCKED (on object monitor)
     at org.apache.activemq.broker.region.Topic.doMessageSend(Topic.java:430)
     - waiting to lock <0x000000076037a788<../sequence/threadId-0x000000005ddee800_shrink-true.html#0x000000076037a788_0>> (a org.apache.activemq.broker.region.Topic)
     at org.apache.activemq.broker.region.Topic.send(Topic.java:411)
     at org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:365)
     at org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:518)
     at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:129)
     at org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
     at org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:227)
     at org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135)
     at org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:462)
     at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:677)
     at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:311)
     at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:185)
     at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
     at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
     at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:228)
     - locked < 0x00000007d054b100> (a org.apache.activemq.transport.InactivityMonitor$1)
     at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
     at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:220)
     at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:202)
     at java.lang.Thread.run(Thread.java:662)

Thread Two
"ActiveMQ Broker[localhost] Scheduler" daemon prio=10 tid=0x00002b3c780d6800 nid=0x1403 waiting for monitor entry [0x00002b3c7cce8000]
     java.lang.Thread.State: BLOCKED (on object monitor)
     at org.apache.activemq.broker.region.RegionBroker.purgeInactiveDestinations(RegionBroker.java:920)
     - waiting to lock <0x00000007603866f8<../sequence/threadId-0x000000005ded2000_shrink-true.html#0x00000007603866f8_0>> (a org.apache.activemq.broker.region.RegionBroker$1)
     at org.apache.activemq.broker.region.RegionBroker$1.run(RegionBroker.java:110)
     at org.apache.activemq.thread.SchedulerTimerTask.run(SchedulerTimerTask.java:33)
     at java.util.TimerThread.mainLoop(Timer.java:512)
     at java.util.TimerThread.run(Timer.java:462)

What I saw as well
"ActiveMQ Transport: tcp:///{IP}:45395" daemon prio=10 tid=0x000000005ded2000 nid=0xe22 waiting on condition [0x00002b3c84a07000]
     java.lang.Thread.State: WAITING (parking)
     at sun.misc.Unsafe.park(Native Method)
     - parking to wait for <0x000000076037c188> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
     at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:811)
     at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:941)
     at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1261)
     at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:594)
     at org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doGetDurableSubscriberMessageCount(DefaultJDBCAdapter.java:575)
     at org.apache.activemq.store.jdbc.JDBCTopicMessageStore.getMessageCount(JDBCTopicMessageStore.java:223)
     at org.apache.activemq.store.ProxyTopicMessageStore.getMessageCount(ProxyTopicMessageStore.java:116)
     at org.apache.activemq.broker.region.cursors.TopicStorePrefetch.getStoreSize(TopicStorePrefetch.java:77)
     - locked < 0x00000007603869d0> (a org.apache.activemq.broker.region.cursors.TopicStorePrefetch)
     at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.start(AbstractStoreCursor.java:59)
     - locked < 0x00000007603869d0> (a org.apache.activemq.broker.region.cursors.TopicStorePrefetch)
     at org.apache.activemq.broker.region.cursors.StoreDurableSubscriberCursor.start(StoreDurableSubscriberCursor.java:81)
     - locked < 0x00000007603868e8> (a org.apache.activemq.broker.region.cursors.StoreDurableSubscriberCursor)
     at org.apache.activemq.broker.region.DurableTopicSubscription.activate(DurableTopicSubscription.java:137)
     - locked < 0x00000007603868e8> (a org.apache.activemq.broker.region.cursors.StoreDurableSubscriberCursor)
     at org.apache.activemq.broker.region.TopicRegion.addConsumer(TopicRegion.java:108)
     at org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:447)
     - locked < 0x00000007603866f8> (a org.apache.activemq.broker.region.RegionBroker$1)
     at org.apache.activemq.broker.jmx.ManagedRegionBroker.addConsumer(ManagedRegionBroker.java:240)
     at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
     at org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:91)
     at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
     at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
     at org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
     at org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:550)
     at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:349)
     at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:311)
     at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:185)
     at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
     at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
     at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:228)
     - locked < 0x0000000761279ad8> (a org.apache.activemq.transport.InactivityMonitor$1)
     at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
     at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:220)
     at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:202)
     at java.lang.Thread.run(Thread.java:662)


Regards,
P. Tlholoe
073 342 4393


To read FirstRand Bank's Disclaimer for this email click on the following address or copy into your Internet browser: 
https://www.fnb.co.za/disclaimer.html 

If you are unable to access the Disclaimer, send a blank e-mail to
firstrandbankdisclaimer@fnb.co.za and we will send you a copy of the Disclaimer.