I have a simple message-driven bean which has a simple task - get a message, extract some data and store it in the database.
Everything works smoothly until an exception is thrown - for instance, the column in the database table is too small to fit a String. As a result I get a deadlock, since the MDB doesn't eat the message but instead puts it back into the queue, gets it again, throws exception, puts it back etc.
How do I get rid of this? Better said, what do I need to put in DD or the code so that MDB eats the message instead of putting it back?
Message acknowledgement is part of transaction in CMT MDB. if its rolled back, message is not acknowledged by container and thus redelivered. So using 'Not Supported' attribute for transaction for MDB may work or let the MDB be BMT.
That's a very big dog. I think I want to go home now and hug this tiny ad: