2015-05-31 3 views
0

У меня проблема, связанная с службой обмена сообщениями Java ... Проблема: предположим, что мой издатель JMS отправил мне 5 сообщений ... Когда я получаю первые два сообщения, мое приложение обрабатывает его, он признает это ... Так что он удаляется из темы ... Wen I recv 3rd msg bcz из какой-то проблемы мое приложение не может обработать третье сообщение и подтверждение dint ... Но 4-е и 5-е сообщение обработаны и подтверждены ... Но вэнь я chk консоль администратора Я нашел 3-е сообщение также подтверждено ...Подтверждение сообщения JMS

Я хочу знать, как подтвердить каждое сообщение индивидуально. У кого-нибудь есть идея ???

Примечание: м с использованием режима CLIENT_ACKNOWLEDGE

ответ

0

Согласно спецификации JMS CLIENT_ACKNOWLEDGE - признавая потребляемое сообщение автоматически подтверждает получение all сообщений, которые были доставлены на своей сессии.

Многие поставщики JMS внедрили вышеуказанную спецификацию и, следовательно, не предоставляют подтверждение одного сообщения. Но некоторые провайдеры JMS (AcitveMQ ??) реализуют каждое подтверждение сообщения. Поэтому вам нужно будет проверить ваш провайдер JMS, если он поддерживает функцию подтверждения сообщения.

+0

Да, я думаю, weblogic не поддерживает подтверждение каждого сообщения ... Возможно ли сделать пользовательское подтверждение ... Которое будет распознавать сообщения индивидуально ... Любая идея? – user2991214

+0

В настоящее время Tibco и ActiveMQ предоставляют этот режим INDIVIDUAL_ACK. Это также учитывается в спецификации JMS2.1! С текущим WebLogic у вас нет большого выбора. Попробуйте установить режим подтверждения подключения к предыдущему и выполните session.recover(), как только он завершится с ошибкой. – satks

Смежные вопросы