Answering my own question. I hope AMQ complies with this. Thanks.
 
Abstract from JMS spec 1.1

JMSRedelivered

If a client receives a message with the JMSRedelivered indicator set, it is likely, but not guaranteed, that this message was delivered but not acknowledged in the past. In general, a provider must set the JMSRedelivered message header field of a message whenever it is redelivering a message. If the field is set to true, it is an indication to the consuming application that the message may have been delivered in the past and that the application should take extra precautions to prevent duplicate processing. See Section 4.4.11, “Message Acknowledgment,” for more information. This header field has no meaning on send and is left unassigned by the sending method.



From: Pesochinskiy, Vadim (MSCIBARRA)
Sent: Thu 6/22/2006 9:13 PM
To: [email protected]
Subject: Bad message problem

Hi!
 
I have following problem. I have to use reliable delivery and I have to make sure that each message is processed. If I have a bad message which kills the consumer ;-) (I know this is stupid, but consumer is JNI call to C++ and it is outside of my control ...). If transaction is not committed the message will not leave the queue and it will kill next consumer which will try to process it (another instance of consumer of the same type). Is there any mechanism which will help me to solve this type of problems? E.g. maximum number of retries to process a message before it is dumped. Thanks a lot.
 
- Vadim.

NOTICE: If received in error, please destroy and notify sender.  Sender does not waive confidentiality or privilege, and use is prohibited.

Reply via email to