我正在编写一个Java JMS应用程序,负责集群节点之间的通信。 消息传递由使用Topic的publish \ subscribe完成。 TopicSubscriber是通过调用TopicSession.createSubscriber(topic,null,true)创建的,这意味着它不是持久订阅者。 现在我正在实现一个“发布”方法,该方法应该取消订阅订阅者(然后关闭连接等)。我看到TopicSession.unsubscribe(字符串名称)仅与持久订阅者相关,因此如何取消订阅非持久订阅者? 有必要吗?
答案 0 :(得分:2)
不,您不需要为非持久订阅发出TopicSession.unsubscribe()
。关闭使用者将从JMS提供程序中删除订阅。您还可以执行Session.Close()
或Connection.Close()
以从JMS提供程序中删除订阅。
在您的Release
方法中,只需关闭订阅者或会话或连接。
仅限持久订阅才需要取消订阅。