The situation is i am having a MessageDrivenBean listening on a particular Queue. The message processing at times takes a long time and i eventually end up getting javax.ejb.TransactionRolledbackLocalException from the container. My question is What's the best way to handle this type of a situation? Should i explicitly check in my onMessage() implementation that the message has been redelivered? and if it is then just ignore it silently as from what i understand since this message is not acknowledged JBoss will try and deliver it again. Am i right ? Once this exception is thrown JBoss stops processing any more messages by the MDB.