In our production environment, we use AMQ broker with Kaha DB persistence. We
have set the following in broker configuration:

schedulePeriodForDestinationPurge="600000"
offlineDurableSubscriberTimeout="259200000" 
offlineDurableSubscriberTaskSchedule="3600000"
<policyEntry topic=">" gcInactiveDestinations="true"
inactiveTimoutBeforeGC="3600000">

Sometimes, I have observed that when the inactivity monitor runs, its not
able to purge inactive destination. Following is log snippet :

2016-05-15 22:29:27,742 | INFO  | profile.<ph_no> Inactive for longer than
3600000 ms - removing ... | org.apache.activemq.broker.region.Topic |
ActiveMQ Broker[PrimaryBroker] Scheduler
2016-05-15 22:29:27,744 | ERROR | Failed to remove inactive destination
Topic: destination=profile.<ph_no>, subscriptions=0 |
org.apache.activemq.broker.region.RegionBroker | ActiveMQ
Broker[PrimaryBroker] Scheduler
javax.jms.JMSException: Destination still has an active subscription:
topic://profile.<ph_no>
        at
org.apache.activemq.broker.region.AbstractRegion.removeDestination(AbstractRegion.java:270)[activemq-broker-5.13.2.jar:5.13.2]
        at
org.apache.activemq.broker.region.RegionBroker.removeDestination(RegionBroker.java:363)[activemq-broker-5.13.2.jar:5.13.2]
        at
org.apache.activemq.broker.BrokerFilter.removeDestination(BrokerFilter.java:178)[activemq-broker-5.13.2.jar:5.13.2]
        at
org.apache.activemq.broker.BrokerFilter.removeDestination(BrokerFilter.java:178)[activemq-broker-5.13.2.jar:5.13.2]
        at
org.apache.activemq.broker.MutableBrokerFilter.removeDestination(MutableBrokerFilter.java:183)[activemq-broker-5.13.2.jar:5.13.2]
        at
org.apache.activemq.broker.region.RegionBroker.purgeInactiveDestinations(RegionBroker.java:918)[activemq-broker-5.13.2.jar:5.13.2]
        at
org.apache.activemq.broker.region.RegionBroker$1.run(RegionBroker.java:118)[activemq-broker-5.13.2.jar:5.13.2]
        at
org.apache.activemq.thread.SchedulerTimerTask.run(SchedulerTimerTask.java:33)[activemq-client-5.13.2.jar:5.13.2]
        at java.util.TimerThread.mainLoop(Timer.java:555)[:1.7.0_95]
        at java.util.TimerThread.run(Timer.java:505)[:1.7.0_95]

One part of the log message says "there are 0 subscriptions", but another
part says "Destination still has an active subscription"

Why is this inconsistency?





--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Failed-to-remove-inactive-destination-tp4711967.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to