Каков наилучший способ отключить надежного потребителя с помощью JMS? - PullRequest
2 голосов
/ 30 апреля 2011

У меня есть постоянный потребитель по теме JMS.Я установил идентификатор клиента, я вижу, что он указан в очереди как постоянный потребитель.

Когда я выкатываю код, сервер перезагружается, но я хочу поставить в очередь сообщения, которые мне не хватает при перезапуске (следовательно, длительный).Как правильно отключить получателя сообщений, чтобы вы закрыли его, но при этом знали, что очередь буферизует сообщения для вас

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

Это правильный путь?или это сообщит очереди, что вы больше не хотите, чтобы сообщения доставлялись при повторном подключении?

messageConsumer.close 

В двух словах, я ищу возможность перезапустить свой сервис, не теряя сообщения из темы "м подписан, спасибо!

1 Ответ

3 голосов
/ 30 апреля 2011

AFAIK, close () просто отключит этого потребителя.Чтобы удалить подписку, нужно от нее отказаться () (метод в сеансе).Однако вы должны проверить это с выбранным вами JMS-провайдером, чтобы убедиться, что они реализовали спецификацию JMS так, как это было задумано!:)

...