3.2.7.4 Phase Zero Complete

The Phase Zero Complete event MUST be signaled with the following arguments:

  • An XA Superior Enlistment Object.

  • Outcome.

If the Phase Zero Complete event is signaled, the XA Subordinate Transaction Manager Facet MUST perform the following actions:

  • If the provided Outcome is set to Failure and the Current Request CMP Connection Object referenced by the provided XA Superior Enlistment Object is set:

    • Send an XAUSER_XACT_MTAG_PREPARE_ABORT message.

    • Set State of provided XA Superior Enlistment Object to ABORTED.

    • Disconnect the Current Request CMP Connection of the provided XA Superior Enlistment Object.

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

  • Otherwise:

    • If the State field of the provided XA Superior Enlistment Object is set to Preparing Single Phase:

      • Signal the Begin Phase One event on the Core Transaction Manager Facet with the following arguments:

        • The Transaction Object referenced by the provided XA Superior Enlistment Object.

        • A Single Phase value set to TRUE.

    • Otherwise if the State field of the provided XA Superior Enlistment Object is set to Preparing:

      • Signal the Begin Phase One event on the Core Transaction Manager Facet with the following arguments:

        • The Transaction Object referenced by the provided XA Superior Enlistment Object.

        • A Single Phase value set to FALSE.