[jboss-jira] [JBoss JIRA] Commented: (JBAS-7950) HornetQ keeps re-delivering the message infinitely on a failure to deliver to MDB

Tim Fox (JIRA) jira-events at lists.jboss.org
Thu Aug 26 11:20:12 EDT 2010


    [ https://jira.jboss.org/browse/JBAS-7950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12547217#action_12547217 ] 

Tim Fox commented on JBAS-7950:
-------------------------------

This is actually a bit more complex... In this case a JTA transaction is being used, and the JMS spec says nothing about what the redelivery semantics when a XAsession is rolled back.

So, it's all a bit vague about what we *should* do here.

I suggest the best thing we can do is assume the redelivery semantics that are specified for the local tx case in JMS also for the JTA case.

The current HornetQ implementation does not consider a message consumed by a message listener to be "delivered" until the onMessage method has finished executing. In the MDB case it doesn't reach that point since the AS implementation wraps the call to the MDB *after* the HornetQ onMessage is executed (see the stack trace), and calls rollback *before* the HornetQ onMessage has finished executing, hence the message is not considered "delivered" in the eyes of HQ, and as such the delivery count is not updated.

I can look at changing the behaviour so it acts like the local transacted case for JTA too, which should fix this issue.

> HornetQ keeps re-delivering the message infinitely on a failure to deliver to MDB 
> ----------------------------------------------------------------------------------
>
>                 Key: JBAS-7950
>                 URL: https://jira.jboss.org/browse/JBAS-7950
>             Project: JBoss Application Server
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: JMS (HornetQ)
>         Environment: AS trunk (hornetq 2.1.0 Beta2)
>            Reporter: jaikiran pai
>            Assignee: Tim Fox
>             Fix For: TBD
>
>         Attachments: JBAS-7950-source.tar.gz, jbas7950.ear
>
>
> As discussed in the referenced forum thread, when HornetQ first fails to deliver a message to a MDB, it continues to redeliver the message infinitely. Also note that the JMS Message.getJMSRedelivered() is also broken - it keeps returning false even on a redelivered message.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list