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 17:29:40 UTC

Can PurgeInactiveDestination cause ActiveMQ to periodically hang

Good Day,

After reading through the ThreadDump (I am hoping I read the dump correctly), I saw the following regarding (PurgeInactiveDestination)

SchedulerTimerTask calls BrokerService that calls purgeInactiveDestinations, but a lock is already acquired by addConsumer method (causing indefinite block). Can this be what is causing the broker to periodically hang for over twenty minutes. Why would the purge take so long (for 10 minutes all the SchedulerTimerTask threads were blocked

    protected void purgeInactiveDestinations() {
        inactiveDestinationsPurgeLock.writeLock().lock();

     public Subscription addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
        ActiveMQDestination destination = info.getDestination();
        if (destinationInterceptor != null) {
            destinationInterceptor.create(this, context, destination);
        }
        inactiveDestinationsPurgeLock.readLock().lock();

BLOCKED THREAD
"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> (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)


THE CULPRIT
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)


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.