在将消息的传递模式更改为非持久后,检查 ActiveMq 是否正在持久化消息



我目前正在为我的项目使用 activemq。我注意到的问题是,由于我在 activemq 中使用的主题是持久的,因此我将日志存储在 kahadb 中。 我尝试将发送到该主题的消息的传递模式更改为非持久性。但是由于 kahadb 以二进制格式存储日志,因此无法测试 activemq 是否持久化消息。任何人都可以建议一种合适的方法来检查 activemq 消息是否已持久化?

-------编辑 有了解决方案后
-----我使用了一个黑客来测试activemq消息是否已持久化。我的主题只有一个非持久订阅者。我创建了一个持久订阅者,并在将消息传递给相关主题时使其保持非活动状态。然后我停止了 activemq 服务器。如果消息已持久保存,则将再次提取该消息,并将显示在创建的持久订户的挂起队列中。这是我用来测试消息是否已保留在主题中的黑客。

除非您有持久订阅,否则主题消息不会持久保存,如果您这样做,那么您应该能够使用 JMX MBean 或通过 Web 控制台查看它们。 主题本身永远不会将其消息保存到非持久消费者案例的存储中。

有一个ActiveMQ CLI可以从KahaDB导出数据,如果您真的需要查看所有内容,它可以帮助您查看实际进入商店的内容:

最新更新