2011-04-29 77 views
2

我有一个JMS主题的持久消费者。我设置了客户端ID,我可以看到它在队列中列为耐用消费者。使用JMS关闭耐用消费者的最佳方式是什么?

当我推出代码时,服务器重新启动,但我想排队在重新启动时丢失的消息(因此持久)。什么是正确的方式正常关闭消息消费者,从而把它关闭,但仍然有排队知道缓冲消息你

destination = session.createTopic("beacons"); 
messageConsumer = session.createDurableSubscriber(destination, clientID); 

这是正确的方法是什么?或者这会告诉队列,当你重新连接时你不再需要传递消息了吗?

messageConsumer.close 

简而言之,我期待着能够重新启动我的服务,而不会丢失我订阅的主题的消息,谢谢!

回答

3

AFAIK,close()将简单地关闭该消费者。为了删除订阅,你需要从它取消订阅()(Session上的一个方法)。您应该使用您选择的JMS提供程序对此进行测试,以确保它们按照预期的方式实现了JMS规范! :)

相关问题