3.2.5.6.5 Connection Disconnected

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

  • XA Superior Enlistment CMP Connection.

When a CONNTYPE_XAUSER_XACT_BRANCH_OPEN connection (section 2.2.4.6) is disconnected, the XA Subordinate Transaction Manager Facet SHOULD perform the following actions:<13>

  • If the connection state is set to Active and 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:

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

    • If the Current Request CMP Connection field of the XA Superior Enlistment 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 the provided XA Superior Enlistment CMP Connection.

  • If the connection state is set to Active and the State field of the XA Superior Child Branch Enlistment Object is set to either Active or Preparing:

    • Set the State field of the Parent XA Superior Enlistment Object of the XA Superior 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 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 Parent XA Superior Enlistment of the XA Child Branch Enlistment.