Prevent Message Loss in Message Driven Bean deployed in WebSphere Application Server

This is small setting in WAS to prevent message loss up to some extent; but, If you are using MDB in WAS(WebSphere Application Server), there some settings specific to WAS which needs to be done, instead of JMS specific settings discussed in my previous posts. There are some settings which need to done over Destination, and some over Messaging Engine.

To make message persistent, Quality Of Service Settings that can be done on Destinations - Default reliability and Maximum reliability should be set as Assured persistent, in all other cases message is discarded when messages engine fails or restarted.
Exception Destination must be set. By default, there is one default exception queue – _SYSTEM.Exception.Destination… in BUS. It would be bright Idea to create a separate exception queue for different Queues or type of messages. So, that messages from different destinations are not mixed into one Exception destination.

I would like to mention, that messages are only transferred to Exception Queue, after some number of retries.  In case of failure and Exceptions, message is re-delivered, Message is redelivered specified number of times.  Retry interval is set over Message Engine –Default blocked destination retry interval.

The time delay, in milliseconds, that is introduced by the system under certain circumstances before a failed message delivery to an application will be retried.  This delay can be overridden by individual Queue destination configurations.  When you configure a bus destination, you can specify an associated exception destination and a maximum number of times that an individual message fails to be consumed before it is put on that exception destination.
I would like to mention, above setting doesn’t works in all versions of was. Check –

Some time back I made a video of how to create a MDB in WAS -


Popular Posts