Antonio D'Errico created AMQ-3830:
-------------------------------------

             Summary: RAR Transacted Message Delivery (Option B JCA Spec 13-30) 
fail to manage Timeoutexception
                 Key: AMQ-3830
                 URL: https://issues.apache.org/jira/browse/AMQ-3830
             Project: ActiveMQ
          Issue Type: Bug
          Components: Connector
    Affects Versions: 5.5.1, 5.6.0
         Environment: Linux - JBoss 5.5.1 or JBoss 7.1.1 - ActiveMQ 5.5.1/5.6.0
            Reporter: Antonio D'Errico


The MDB receives a message within an XA transaction.
If a timeout occurs, the application server transaction manager move the 
transaction state to aborted and after ended, rollbacking changes and resetting 
the transaction id. 
Everything done after delivery of the message is resetted to its initial state.
When, however, the control returns to ActiveMQSession the transactionContext 
has been cleaned up so a new local transaction is started.
At this point is invoked the method ServerSessionImpl.afterDelivery and the the 
proxy MessageEndpoint (JBoss instance) starts the afterDelivery stuff. 
The application server transaction manager tries to commit a transaction that 
is already ROLLED_BACK and rise an exception. Returning to  
ServerSessionImpl.afterDelivery the exception is catched and is executed the 
finally block, the transaction context is marked as a local so is done a local 
commit that remove the message from the input queue. 
As result the message has been consumed (lost) but not processed.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to