Based on http://www.jboss.com/index.html?module=bb&op=viewtopic&t=53631 it 
seems that the JMS specification and the EJB specification conflict on how 
redelivery is handled for MDBs with BMT.  Specifically, the EJB specification 
states that the message acknowledgement is managed by the container (happens 
outside of the transaction onMessage() method) and can be prevented by throwing 
a RuntimeException from onMessage().  The JMS specification states that 
throwing an unchecked exception from onMessage() is not expected and produces 
undetermined results.  Based on my experience with JBoss, it seems that the 
latter behavior is what is implemented; when I throw a RuntimeException from 
onMessage the exception is logged but the message is still acknowledged.  I've 
tried in JBoss 4.0.3SP1 and 4.0.5GA.

I've also read that using BMT with an MDB and expecting redelivery is an 
anti-pattern, and in most cases I can see that.  However, I have a need to log 
(and commit) events to a database as they occur with the possibility of 
redelivering the message should processing fail at some point.  CMT will not 
work, since rolling back the distributed JTA transaction will undo the logging. 
 BMT works well, but I cannot force redelivery.

In the post I linked to there was mention of a possible patch to allow 
RuntimeExceptions thrown from onMessage() to cause redelivery of messages.  Has 
this patch been applied?  If so, is it included with any current version of 
JBoss AS, or would I need to update the JBoss messaging libraries myself?  What 
sort of configuration changes would I need to make to enable it?

If the patch hasn't been applied, can anyone suggest a workaround?  Some ideas 
that I have brewing are perhaps using raw JDBC calls (perhaps through a custom 
Log4J appender) or trying to log in another thread.  I'm not certain that 
either will work as expected, though.

Any ideas are very much appreciated.

Thanks,

Jesse

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4017816#4017816

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4017816
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to