Получить номер повторного сообщения JMS - PullRequest
7 голосов
/ 18 января 2011

Я использую JMS Queue и MDB, которые его слушают.У меня есть механизм повторных попыток, поэтому, когда генерируется исключение, произойдет откат транзакции, и операция будет выполнена повторно.Я могу написать текущий номер повторного выполнения.Я слышал, что могу получить его через заголовок объекта сообщения, но не смог найти ничего в свойствах или в сети.

Кто-нибудь знает, что?1007 *

Ответы [ 3 ]

13 голосов
/ 18 января 2011

См. Javax.jms.Message.getIntProperty.Имя свойства - «JMSXDeliveryCount».

1 голос
/ 30 августа 2016

Из руководства по оракулу [https://docs.oracle.com/javaee/7/tutorial/jms-concepts003.htm#BNCEH] раздел 45.3.7.2 Свойства сообщения:

JMS API предоставляет некоторые предопределенные имена свойств, которые начинаются с JMSX. Поставщик JMS должен реализовать только один из них, JMSXDeliveryCount (который указывает количество раз, когда сообщение было доставлено); остальные не являются обязательными. Использование этих предопределенных свойств или пользовательских свойств в приложениях не является обязательным.

требуется реализация JMSXDeliveryCount, и она будет содержать необходимую информацию.

1 голос
/ 19 января 2011

Единственный стандартный способ сделать это - взглянуть на свойство JMSXDeliveryCount.Однако вы должны знать, что спецификация JMS гласит, что определенные JMS свойства (те, которые начинаются с JMSX) являются необязательными, поэтому зависит от вашего конкретного поставщика, поддерживается ли это свойство и устанавливается в каждом случае.

...