Generally for MDBs two different types of transaction attributes are supported:
With tx attribute as "NotSupported", I was always of the assumption if the MDBs onMessage() throws any RuntimeException then the message will be lost or the message will not be redelivered back to the queue.
But when i did some tests, even with tx attribute "NotSupported", and if onMessage() throws any runtime exception, the message is redelivered back to the queue.
We are using Weblogic 8.1 sp5 as the message broker.
Your comments are welcome, if this is the desired behaviour with NotSupported transaction attribute?
For websphere, it depends on syncpoint- try to see weblogic docs if something equivalent is being used
from websphere docs....
If WebSphere MQ establishes a syncpoint around the MDB message consumption in this container-managed transaction (not supported) case, the message is rolled back onto the destination after an unchecked exception.
If a syncpoint is not used, then the message is deleted from the destination after an unchecked exception.
In Weblogic the messages will be rolled back.
what is meant by syncpoint in WebSphere?