I have traced this a bit more and the problem is bigger than I thought. What I am seeing is that while SubscriptionRecoveryPolicy is running, a lock is taken out that prevents ANY producer or consumer from being added or removed from BrokerRegion.
Note that this prevents ANY connection to the broker from creating subscriptions or from becoming a new producer for a destination. From the perspective of many client applications this can actually look like a hang in completing the connection (if, for example, their connection tries to subscribe to Advisory messaging automatically, which seems to be the default). This seems pretty bad to me. Especially since I expect my recovery actions to take a while (lots and lots of messages from a special message store). I'm not sure how to fix this, although I am willing to give it a shot if someone could provide an explanation around the synchronization of BrokerRegion.purgeInactiveDestinationsTask. I have logged a bug here: https://issues.apache.org/jira/browse/AMQ-3070 -- View this message in context: http://activemq.2283324.n4.nabble.com/How-to-safely-consume-a-topic-from-INSIDE-the-broker-tp3068674p3072049.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.