2012-05-23 3 views
1

Я пишу приложение Java JMS, которое отвечает за общение между узлами кластера. Обмен сообщениями осуществляется путем публикации \ subscribe с использованием темы. TopicSubscriber создается при вызове TopicSession.createSubscriber (topic, null, true), что означает, что он не является долговечным подписчиком. Теперь я реализую метод «выпуска», который должен отменить подписку на Абонента (а затем закрыть соединение и т. Д.). Я видел, что TopicSession.unsubscribe (String name) имеет отношение только к прочным подписчикам, так как я могу отказаться от подписки на не прочный? Нужно ли это?Должна ли я отказаться от подписки на непрозрачную подписку JMS Topic?

+0

Шаши - это право. Вам не нужно ничего подписывать. Это как включить радио, а затем выключить. Вы получаете данные только в том случае, если неработающий подписчик создан, а когда он закрыт, вы этого не делаете. –

ответ

2

Нет, вам не нужно выставлять TopicSession.unsubscribe() за недолгую подписку. Закрытие потребителя удалит подписку у поставщика JMS. Вы также можете сделать Session.Close() или Connection.Close(), чтобы удалить подписку у поставщика JMS.

В вашем методе Release просто закройте подписчика или сеанс или соединение.

Отказаться от подписки требуется только для прочных подписчиков.