2011-01-18 17 views
5

Estoy usando JMS Queue y MDB que lo escuchan. Tengo un mecanismo de reintento, por lo que cuando se produce una excepción, se producirá una reversión a la transacción y la operación se volverá a ejecutar/Recuperar Número de mensaje JMS reintentar

Me gustaría obtener el Message_retry_number, cada vez que se ejecute "onMessage", por lo que puede escribir el número de reintentos de ejecución actual. Escuché que puedo recuperarlo a través del encabezado del objeto de mensaje, pero no pude encontrar nada en las propiedades o en la red.

alguien tiene alguna pista?

Gracias, ray.

Respuesta

10

Consulte javax.jms.Message.getIntProperty. El nombre de la propiedad es "JMSXDeliveryCount".

+0

wow, yer goood :) gracias. – rayman

1

La única forma estándar de hacerlo es echar un vistazo a la propiedad JMSXDeliveryCount. Sin embargo, debe tener en cuenta que la especificación JMS establece que las propiedades definidas JMS (las que comienzan con JMSX) son opcionales, por lo que depende de su proveedor específico si esta propiedad es compatible y se configura en todos los casos.

0

de Oracle tutorial [https://docs.oracle.com/javaee/7/tutorial/jms-concepts003.htm#BNCEH] sección 45.3.7.2 Propiedades del mensaje:

El API JMS proporciona algunos nombres de propiedades predefinidas que comienzan con JMSX. Se requiere que un proveedor JMS implemente solo uno de estos, JMSXDeliveryCount (que especifica el número de veces que se ha entregado un mensaje); el resto son opcionales El uso de estas propiedades predefinidas o de propiedades definidas por el usuario en aplicaciones es opcional.

se requiere la implementación JMSXDeliveryCount, y contendrá la información que necesita.

Cuestiones relacionadas