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

时间:2020-06-11 21:11:28

标签: stomp activemq-artemis

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

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

据我所知,我已尽力做到这一点,以使此队列中的消息在重新启动后仍然可以幸存,但是由于某种原因,当我重新启动代理时,所有消息都消失了

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

1 个答案:

答案 0 :(得分:1)

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

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

相关问题