发送到持久地址/队列的 STOMP 消息在重新启动后无法幸存



我正在开始使用ActiveMQ Artemis,并希望将STOMP消息发送到队列:

<address name="/queue/default">
<multicast>
<queue name="/queue/default">
<durable>true</durable>
</queue>
</multicast>
</address>

据我所知,我已经尽了最大的努力使这个队列中的消息能够在重新启动后幸存下来,但由于某种原因,当我重新启动代理时,所有消息都消失了。

在这种情况下,我会缺少什么可能导致这种情况发生?

如果没有关于您如何发送消息的更多详细信息,很难自信地回答,但我猜您没有在消息上设置正确的标头来指示它应该是持久/持久的。STOMP规范没有概述消息在这方面的行为,因此由消息传递提供者(即在这种情况下为ActiveMQ Artemis(来确定行为。默认情况下,邮件不是持久/持久的,因此您必须将邮件上的persistent标头设置为true以使邮件持久/持久。

还值得注意的是,队列在默认情况下是持久的,因此您实际上不需要定义中的<durable>true</durable>,因为它是多余的。

相关内容

最新更新