[jboss-user] [JBoss Messaging] - Re: Queue attributes not being implemented
do-not-reply at jboss.com
Wed May 23 11:47:41 EDT 2007
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
More information about the jboss-user