Jms ActiveMQ如何保留在队列/主题上未能发送给使用者的消息?

Jms ActiveMQ如何保留在队列/主题上未能发送给使用者的消息?,jms,activemq,Jms,Activemq,我仍在学习有关activemq和jms的内容。 我已经尝试了一些示例,现在我可以从队列/主题生成和使用消息。 现在我遇到了一个问题,当我的客户机/消费者失去连接时,队列/主题中的消息仍然会发送该消息,该消息会丢失,并且不会保留在队列/主题中。所以我的问题是如何保存失败的消息,以及如何让代理再次发送该消息? 谢谢您正在寻找的东西可能是持久订阅 你可以在上找到同样的文档,你把术语弄混了一点 队列将保留消息,直到消息被消费或代理重新启动,除非消息被标记为持久消息,在这种情况下,即使在代理重新启


我仍在学习有关activemq和jms的内容。 我已经尝试了一些示例,现在我可以从队列/主题生成和使用消息。

现在我遇到了一个问题,当我的客户机/消费者失去连接时,队列/主题中的消息仍然会发送该消息,该消息会丢失,并且不会保留在队列/主题中。所以我的问题是如何保存失败的消息,以及如何让代理再次发送该消息?


谢谢

您正在寻找的东西可能是
持久订阅


你可以在

上找到同样的文档,你把术语弄混了一点

队列将保留消息,直到消息被消费或代理重新启动,除非消息被标记为持久消息,在这种情况下,即使在代理重新启动后,它们仍将保留

主题仅将当前消息传递给任何当前订阅者。但是,有几种方法可用于持久化发布到主题的消息:

  • 持久订户
  • 相对于持久订阅者,虚拟主题由于许多原因而更受欢迎,但这实际上取决于用例


    如何创建持久订阅者取决于创建订阅者所使用的内容(Spring、POJO、其他一些API?)。所有方法都会在某个时候调用该方法,但我建议在选择虚拟主题或组合队列之前,先阅读它们的行为

    谢谢你的回复。我如何将消费者设置为持久消费者?我同意Erik的回答,你可以看一看。谢谢。那么,我如何从经纪人向消费者提供“保证交付”之类的服务呢?确保它作为持久消息生成。此外,您还需要查看某种形式的客户端ack或事务。