3.2.5.3.4 Receiving an XAUSER_XACT_MTAG_ABORT Message

When the XA Subordinate Transaction Manager Facet receives an XAUSER_XACT_MTAG_ABORT message, it MUST perform the following actions:

  • If the connection state is set to Active and the State field of the XA Superior Enlistment Object referenced by the XA Superior Enlistment CMP Connection is set to Aborted:

    • Send an XAUSER_XACT_MTAG_REQUEST_COMPLETED message.

    • Remove the XA Superior Enlistment Object referenced by the XA Superior Enlistment CMP Connection from the XA Superior Enlistment Table of the XA Superior Object indexed in the XA Superior Table by the Resource Manager Recovery GUID of the XA Superior Enlistment Object.

  • Otherwise, if the connection state is set to Active and the State field of the XA Superior Enlistment Object referenced by the XA Superior Enlistment CMP Connection is set to either Active, Prepared, or In Doubt:

    • Set the Current Request CMP Connection field of XA Superior Enlistment referenced by the XA Superior Enlistment CMP Connection to receiving connection.

    • Set the State field of XA Superior Enlistment Object referenced by the XA Superior Enlistment CMP Connection to Aborting.

    • Signal the Begin Rollback event ([MS-DTCO] section 3.2.7.6) on the Core Transaction Manager Facet with the following argument:

      • The Transaction Object referenced by the XA Superior Enlistment Object referenced by the XA Superior Enlistment CMP Connection.

  • Otherwise: