As tbain98 correctly said, this is application logic. The best approach is to implement the processing logic within the receiver of the message as an idempotent service, i.e. if you perform the same action twice, it won't change your application state again.
One possible solution could be to have a unique txn-id as part of your message and the processing service will persist the txn-id. Now, in case you receive the same txn-id again, your logic will know that it already processed it and can safely discard the message as a duplicate. There are other approaches and solutions, e.g. using a distributed cache to hold txn-id for a certain period of time, etc. All of that highly depends on your very specific use cases so you will have to look at your overall architecture and decide for yourself. -- View this message in context: http://activemq.2283324.n4.nabble.com/preventing-duplicate-messages-that-perform-the-same-action-tp4686571p4686577.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.