2011-04-29 74 views
2

我有一個JMS主題的持久消費者。我設置了客戶端ID,我可以看到它在隊列中列爲耐用消費者。使用JMS關閉耐用消費者的最佳方式是什麼?

當我推出代碼時,服務器重新啓動,但我想排隊在重新啓動時丟失的消息(因此持久)。什麼是正確的方式正常關閉消息消費者,從而把它關閉,但仍然有排隊知道緩衝消息你

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

這是正確的方法是什麼?或者這會告訴隊列,當你重新連接時你不再需要傳遞消息了嗎?

messageConsumer.close 

簡而言之,我期待着能夠重新啓動我的服務,而不會丟失我訂閱的主題的消息,謝謝!

回答

3

AFAIK,close()將簡單地關閉該消費者。爲了刪除訂閱,你需要從它取消訂閱()(Session上的一個方法)。您應該使用您選擇的JMS提供程序對此進行測試,以確保它們按照預期的方式實現了JMS規範! :)

相關問題