Uploaded image for project: 'ActiveMQ'
  1. ActiveMQ
  2. AMQ-7485

RAR managed producer is unaware of timed out transaction; sends non transacted message in error

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.15.0
    • 5.16.0
    • RAR, XA
    • JEE RAR

    Description

      There is a problem with a RAR managed connection enlisted in a xa transaction that aborts, if that connection is used to produce messages.

      getConnection succeeds and enlists the resource, the session is in an xa transaction, all is good.
      If however, the transaction times out and aborts, before a producer gets to send(), the send will not see a transaction context and will produce a message with no transaction identity in error.
      The abort forces an end(fail) and rollback, however this results in the transaction context being unset and the producer session not being aware of the aborted transaction.
      The transaction management is external in the case of a managed connection and the default is non transactional in the absence of an external or RAR local transaction.

      Getting a reference to the TransactionManager and doing a transaction status check before send is a workaround, but that should not be necessary.

      Attachments

        Activity

          People

            gtully Gary Tully
            gtully Gary Tully
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: