3.2.5.5.2 Connection Disconnected

The Connection Disconnected event MUST be signaled with the following argument:

  • XA Superior Enlistment CMP Connection.

When a CONNTYPE_XAUSER_XACT_BRANCH_START connection (section 2.2.4.4) is disconnected, the XA Subordinate Transaction Manager Facet (section 1.3.2.3.2) SHOULD perform the following actions:<12>

  • Test if the provided XA Superior Enlistment CMP Connection satisfies the following conditions:

    • The State field of the provided XA Superior Enlistment CMP Connection is set to Active.

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

    • The State field of the XA Superior Enlistment Object referenced by the provided XA Superior Enlistment CMP Connection is set to either Active or Preparing.

  • If the conditions are met, perform the following actions:

    • Set the State field of the XA Superior Enlistment Object to Aborting.

    • If the Current Request CMP Connection field of the XA Superior Enlistment Object referenced by the provided XA Superior Enlistment CMP Connection is set to the provided XA Superior Enlistment CMP Connection:

      • Remove the reference to the XA Superior Enlistment CMP Connection from the Current Request CMP Connection field of the XA Superior Enlistment Object.

    • 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 provided XA Superior Enlistment CMP Connection.

  • Test if the provided XA Superior Enlistment CMP Connection satisfies the following conditions:

    • The State field of the provided XA Superior Enlistment CMP Connection is set to Active.

    • The XA Superior Enlistment Object referenced by XA Superior Enlistment CMP Connection references an XA Superior Child Branch Enlistment Object.

    • The State field of the XA Superior Enlistment Object referenced by the provided XA Superior Enlistment CMP Connection is set to Active.

  • If the conditions are met, perform the following actions:

    • Set the State field of the Parent XA Superior Enlistment of XA Child Branch Enlistment to Aborting.

    • If the Current Request CMP Connection field of the XA Child Branch Enlistment Object referenced by the provided Connection is set to the provided XA Superior Enlistment CMP Connection:

      • Remove the reference to the XA Child Branch Enlistment Object from the Current Request CMP Connection field of the XA Child Branch Enlistment Object.

    • 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 Parent XA Superior Enlistment Object, referenced by the XA Superior Child Branch Enlistment.