如何在Activemq中保存消息和主题?

时间:2013-09-11 08:35:43

标签: java jms activemq

我有QueueTopicActivemq中有2条消息。如果我重新启动Activemq。我正在丢失消息,Topic

即使我重新启动Activemq,我也不想丢失来自任何TopicQueue的任何消息。是否有可能。

我正在使用Activemq 5.8.0

1 个答案:

答案 0 :(得分:0)

  

生产者生成消息并将其发送到主题,该主题永远   消费者在那个时间点运行,会收到消息。   如果您希望消费者现在不在,但可能正在运行   未来得到这个消息,你将不得不告诉经纪人   坚持消息并存储此信息   消费者没有收到消息。

如果您的工作代码没有持久订阅者,则必须进行以下更改。

在消费者中,
1.设置clinetId。因为主题应该知道哪个消费者还没有收到消息。或者收到了消息。

Connection.setClientID(String)

2。应该为您的主题创建一个持久的订阅者

Connection.createDurableSubscriber()

3。将您的侦听器添加到此订阅者。

subscriber.setMessageListener(yourlistener)

4。收到邮件后,您必须确认

此链接显示了它是如何完成的:但它在c#中我猜。

http://myadventuresincoding.wordpress.com/2011/08/16/jms-how-to-setup-a-durablesubscriber-with-a-messagelistener-using-activemq/

阅读这些链接以获取更多信息:

http://activemq.apache.org/how-do-durable-queues-and-topics-work.html http://activemq.apache.org/why-do-i-not-receive-messages-on-my-durable-topic-subscription.html http://activemq.apache.org/manage-durable-subscribers.html