我目前正在为我的项目使用activemq。我注意到的问题是,由于我在activemq中使用的主题是持久性的,因此我将日志存储在kahadb中。 我尝试将发送给该主题的消息的传递模式更改为非持久性。但是由于kahadb以二进制格式存储日志,因此无法测试activemq是否保留了该消息。谁能建议一种合适的方法来检查activemq消息是否已持久?
-------编辑后找到解决方案-----
我使用黑客工具来测试activemq消息是否已保留。我的主题只有一个不持久的订户。我创建了一个持久订户,并在将消息传递给相关主题时使其保持不活动状态。然后,我停止了activemq服务器。如果该消息已保留,则将再次提取该消息并将其显示在已创建的持久订户的挂起队列中。这是我用来测试邮件是否已在主题中保留的黑客。
答案 0 :(得分:0)
除非您有长期订阅,否则不会保留主题消息,如果这样做,则应该可以使用JMX MBeans或通过web console查看它们。对于非耐久的消费者案例,主题本身永远不会将其消息保留在商店中。
有一个ActiveMQ CLI从KahaDB导出数据,如果您确实需要查看所有内容,它可以帮助您查看商店中实际要存储的内容: