我在JMS主题上有一个持久的消费者。我设置了客户端ID,我可以看到它在队列中列为持久消费者。
当我推出代码时,服务器重新启动但我想在重新启动时将我丢失的消息排队(因此持久)。干净地关闭消息使用者的正确方法是什么,以便您关闭它但仍然知道队列为您缓冲消息
destination = session.createTopic("beacons");
messageConsumer = session.createDurableSubscriber(destination, clientID);
这是正确的方法吗?或者这会告诉队列您在重新连接时不再需要传递消息吗?
messageConsumer.close
简而言之,我希望能够在不丢失我订阅的主题的消息的情况下重启我的服务,谢谢!
答案 0 :(得分:3)
AFAIK,close()将关闭该消费者。要删除订阅,您需要从中取消订阅()(Session上的方法)。您应该使用您选择的JMS提供程序对此进行测试,以确保它们按照预期的方式实现JMS规范! :)