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

问题描述 投票:0回答:1

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

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

activemq
1个回答
0
投票

主题消息不会持久化,除非您有持久订阅,否则您应该能够使用JMX MBeansweb console查看它们。对于非持久消费者案例,主题本身永远不会将其消息持久存储到商店。

有一个ActiveMQ CLI从KahaDB导出数据,如果你真的需要看到一切,它可以帮助你看到实际进入你的商店的东西:

© www.soinside.com 2019 - 2024. All rights reserved.