我在使用 ActiveMQ-CPP 和 stomp 协议(protocol)创建持久消费者和生产者时遇到了问题。我正在尝试使用 stomp 连接到 HornetQ,并且能够在非持久状态下发送和接收消息。 我尝试将生产者的传递模式与消息的 CMSDeliveryMode 一起设置为持久化,并创建 DurableConsumer 而不是普通消费者,从而将其更改为持久。但是当我查看 JBoss JMX-Console 时,它们都被认为是非持久的(消息被归类为非持久的,消费者也被订阅为非持久的)。
我什至尝试了集成测试 StompDurableTest,但只收到 20 条消息中的 10 条(消费者处于事件状态时发送的消息)。所以测试失败了。
由于集成测试不起作用,我猜它与 ActiveMQ-cpp 或 Stomp 配置有关,而不是代码。我是否缺少任何东西来实现耐用性?
提前致谢
萨米
最佳答案
不确定 HornetMQ 是如何工作的,但我看到其他人对目标名称有疑问,因为 hornet 不喜欢 CMS 附加的/topic 和/queue 前缀,以便与 ActiveMQ 一起工作。
另一件需要注意的事情是,对于 Stomp,您的 clientId 和订阅 ID 需要匹配,并且在您每次连接时都保持不变。
问候 蒂姆
www.fusesource.com
关于c++ - ActiveMQ-cpp 和 stomp 的耐久性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4516910/