Yes, it's possible to have message redelivery under certain circumstances, and the most common way to avoid reprocessing of non-idempotent redelivered messages is to store the IDs of all processed messages as you've described. (You could use the JMSMessageID or some natural ID of the message; uniqueness is what matters here.) Keep in mind that one possible scenario that would cause message redelivery is the crash of a client, so make sure that ID list is somewhere persistent (i.e. not just in memory).
Tim On Apr 14, 2015 6:00 AM, "Sally" <sahil.ra...@barclaycard.co.uk> wrote: > Hello Everyone > > Being new to messaging world, we are concerned about the following failure > scenario and how to deal with it. > > Failure Scenario : While consumer of Message sends ACK back to the > Broker,failure occurs i.e ACK is not received by the Broker. What would > happen in such a case ? Will Broker sends the same Message again ? > If yess, then how to deal @ the coinsumer side iff message is not > idempotent. Should we store somewhere at the Consumer side for the messages > being already processed and checks onReceive of message whether Consumer > has > already processed this message or not. > > Please suggestr best Strategy for Production use. > > Looking Forward !!! > > Cheers!!! > > > > > -- > View this message in context: > http://activemq.2283324.n4.nabble.com/Acknowledgement-Failure-tp4694871.html > Sent from the ActiveMQ - User mailing list archive at Nabble.com. >