The issue with redelivery delay and DLQ is as follows is related to the fact 
that the JBoss MDB container is situated between the JMS provider and the 
onMesssage of the MDB.

If you imagine, a message is received from the JMS provider (JBoss Messaging), 
then it gets sent to the MDB container, which does stuff like starting 
transactions if necessary, then it eventually gets sent to the onMessage method 
of the MDB.

The MDB container is not a part of JBoss Messaging, its a part of the app 
server and managed as a separate project.

So.. if an exception is thrown by the MDB, the exception is caught by the MDB 
container since that is the thing that immediately wraps the MDB, which then 
decides whether to redelivery, or sent the message to the DLQ etc.

As you can see from the above, this is handled further down the call stack from 
JBoss Messaging, so JBM does not have a chance to catch the exception and 
perform its own redelivery, sent to the JBM DLQ etc.

The MDB container can be configured with its own DLQ, max delivery attempts etc 
(see http://wiki.jboss.org/wiki/Wiki.jsp?page=ConfigJBossMDB), but currently 
does not contain functionality for redelivery delay.

So, when using JBM as the JMS provider for MDBs, the JBM redelivery delay 
attribute will effectively have no effect.

Weston Price (who is the lead for JBoss JCA which handles the MDB container) 
considered adding this functionality to the MDB container but so far it does 
not exist.

Hope that helps.

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

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

Reply via email to