hi. i have a doubt about when one MDB is not redelivered and redelivered with sucess? wich all cases possible?
SCJP 1.5 : SCWCD 1.4 : SCBCD 5.0
posted 12 years ago
Originally posted by Rafael Rocha: hi. i have a doubt about when one MDB is not redelivered and redelivered with sucess? wich all cases possible?
yeah, the message will not be redeliverd because the MDB did not throw any exception.
edited: compelemt for read specification above:
As per section 18.104.22.168 of EJB 3.0 Core specification: A transaction must be started before the dequeuing of the JMS message and, hence, before the invocation of the message-driven bean�s onMessage method.
The resource manager associated with the arriving message is enlisted with the transaction as well as all the resource managers accessed by the onMessage method within the transaction.
If the onMessage method invokes other enterprise beans, the container passes the transaction context with the invocation. The transaction is committed when the onMessage method has completed.
If the onMessage method does not successfully complete or the transaction is rolled back, message redelivery semantics apply. [ July 30, 2008: Message edited by: Rafael Rocha ]