如果侦听器关闭,持久性JMS消息如何生存

时间:2018-07-27 08:07:22

标签: jboss jms hornetq

我有一个主题,并且在主题注释中发布了一条消息:我停止了所有JMS队列侦听器。 现在,我这次重新启动服务器,同时启用侦听器,我希望系统使用我以前发布的消息。但这不是那样。

我已经阅读了JBOSS的文档-hornetq说所有JMS消息都是持久性的。我如何证明消息是持久性的?消息应该已经在第二次运行中使用了;因为邮件本来应该在邮件队列的某个持久数据库中。

http://activemq.apache.org/what-is-the-difference-between-persistent-and-non-persistent-delivery.html

文档说持久性JMS消息可以在代理重新启动后幸存下来,我的问题是,持久性JMS消息可以在侦听器重新启动后幸存下来,如果不能,那么我该如何实现?

1 个答案:

答案 0 :(得分:0)

我认为您只是在体验JMS主题的正常语义。这里有几件事要记住:

  1. 发送到某个主题的任何消息都会放入该主题的匹配订阅中。如果该主题上没有匹配的订阅,则该消息将被丢弃。
  2. 默认情况下,主题订阅不是持久订阅,当订阅者断开连接时,非持久订阅中的所有消息都将被丢弃。
  3. 为了使发送给主题的消息在代理重新启动后继续存在,订阅必须是持久的,并且消息必须是持久的。