我们的应用程序允许用户创建ActiveMQ主题并订阅它们。所有订阅者都被创建为持久订阅者。 ActiveMQ代理嵌入在应用程序中,并在应用程序启动时启动。
测试显示出以下问题:
如果创建了主题但从未订阅过主题,可以通过JConsole中的Broker操作或使用“BrokerView.removeTopic(String)”通过我们的应用程序代码删除它。在上述任何一种情况下,主题都会从JConsole主题列表中删除,并且不会再次出现。
如果主题获得了取消订阅的持久订阅者(因此没有订阅者且没有消息),仍然可以使用JConsole或应用程序本身删除它,如上所述。该主题从JConsole主题列表中消失。但是,当我重新启动应用程序时,主题会重新出现。我称之为“僵尸主题”。无论我尝试删除主题多少次,此方案都会重复。
我怀疑KahaDB是坚持这些主题并恢复它们,但我一直无法找到任何描述这种特定行为的内容或我可能会做些什么来修改它。
任何建议都将受到赞赏。