ActiveMQ – 当消费者=零时删除VirtualTopic

我试图在activeMQ 5.8.0下使用JMS实现一个新的应用程序。 有几个应用程序configuration为生产者(即在MQ中转储消息),两个主题,然后消费者被configuration为查看在Tomcat服务器启动时dynamic创build的VirtualTopic。

示例stream程将是:

Producer1 (Tomcat) --JMS--> ActiveMQ.VirtualTopic Consumer.VirtualTopic1 --JMS--> Consumer1 (Tomcat) Consumer.VirtualTopic2 --JMS--> Consumer2 (Tomcat) 

我们希望灵活性能够启动任何数量的消费者,并将ActiveMQdynamic地发送给他们。 这是工作。 但是,当消费者服务器被closures时(或者不再需要,服务器崩溃,networking中断等),我希望AMQ停止在VirtualTopic上放置消息,因为stream量控制正在踢入,不再是从生产者消耗的消息。

我有我的activemq.xmlconfiguration与:

 <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" schedulePeriodForDestinationPurge="10000"> <policyEntry queue=">" gcInactiveDestinations="true" inactiveTimoutBeforeGC="30000" /> 

因此,我希望服务器在Tomcat节点停止40秒(标记为零的消费者数量)内被标记为非活动状态,但不会发生。 我错过了什么吗?

谢谢!

我自己find了一个更ActiveMQ熟悉的答案。 队列会自动删除,但前提是没有待处理的消息。 这个解决scheme的实现是为了处理一个持续不断的消息stream(每秒20-5000个),所以从来没有一个窗口可以被删除。