2012-05-23 57 views
1

我正在編寫負責羣集節點之間通信的Java JMS應用程序。 通過發佈\訂閱使用主題完成消息傳遞。 TopicSubscriber通過調用TopicSession.createSubscriber(topic,null,true)來創建,這意味着它不是一個持久訂閱者。 現在我正在實現一個「release」方法,它應該取消訂閱Subscriber(然後關閉連接等)。我看到TopicSession.unsubscribe(String name)只與持久訂閱者有關,所以如何取消訂閱非持久訂閱者? 是否有必要?我應該取消訂閱非持久JMS Topic訂戶嗎?

+0

Shashi是對的。您無需取消訂閱任何內容。這就像打開收音機然後關閉。只有在創建非持久訂戶時纔會獲取數據,並且在關閉時您不會。 –

回答

2

不,您不需要爲非持久訂閱發行TopicSession.unsubscribe()。關閉使用者將從JMS提供者中移除訂閱。您還可以執行Session.Close()Connection.Close()以從JMS提供程序中刪除預訂。

在您的Release方法中,只需關閉用戶或會話或連接。

取消訂閱僅適用於持久訂閱。