Uploaded image for project: 'JBoss Transaction Manager'
  1. JBoss Transaction Manager
  2. JBTM-1988

Downgrade certain log messages when we end a branch using TMFAIL

    Details

    • Type: Feature Request
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Rejected
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: JTA, Resource Manager
    • Labels:
      None

      Description

      JBTM-1786 changed the XAResourceRecord::topLevelAbort such that the flag we send to XAR::end() from TMSUCCESS to TMFAIL.

      It is possible that when we call XAResource::end(TMFAIL) the branch may have been:
      1. marked as rollback only
      2. rolled back

      From the XA spec: "The portion of work has failed. A resource manager might choose to mark a transaction branch as rollback-only at this point. In fact, a transaction manager does so for the global transaction. If a resource manager chooses to do so also, xa_end() returns one of the [XA_RB∗] values. TMFAIL cannot be used in conjunction with either TMSUSPEND or TMSUCCESS."

      We cannot rely on the resource manager having rolled back the branch so we have to call XAR::rollback. An example is DB2, in this case it has rolled back the branch and so can raise an XAException when we call rollback on it.

      We should record if the RM has returned an XA_RBROLLBACK during end and if the RM then returns XAER_RMFAIL during rollback we should downgrade the logging to debug level.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  tomjenkinson Thomas Jenkinson
                  Reporter:
                  tomjenkinson Thomas Jenkinson
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  1 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: