3.2.7.25 Phase One Completed

The Phase One Completed event MUST be signaled by using the following arguments:

If the Phase One Completed event is signaled, the Core Transaction Manager MUST perform the following actions:

  • Set the state of the transaction to Phase One Complete (section 3.2.1.3.8).

  • If both the transaction's Phase Two Enlistment list and the transaction's Phase Two (section 1.3.1.3) Voter Enlistment list are empty:

    • Signal the Phase One Complete (see sections 3.4.7.13 and 3.8.7.7) event on the transaction's Superior Enlistment's Transaction Manager facet with the following arguments:

      • The transaction's Superior Enlistment object

      • The Read Only outcome

    • Signal the Forget Transaction (section 3.2.7.22) event on the Core Transaction Manager Facet's (section 1.3.3.3.1) with the provided transaction object.

  • If the Single Phase Commit flag (defined in section 3.2.1) of the transaction is set to TRUE:

    • Set the transaction state to Failed to Notify (section 3.2.1.3.13).

    • Save the transaction to the Core Transaction Manager Facet.Durable Log of the Core Transaction Manager.

    • Signal the Phase One Complete event on the Transaction Manager facet of the transaction's Superior Enlistment using the following arguments:

      • The Superior Enlistment object of the transaction.

      • The Committed outcome.

    • Set the transaction state to Phase One Complete.

    • Signal the Begin Commit (section 3.2.7.2) event on the Core Transaction Manager Facet's with the provided transaction object.

  • Otherwise, if the Single Phase Commit flag of the transaction is set to FALSE:

    • Set the transaction state to In Doubt (section 3.2.1.3.12).

    • Save the transaction to the Core Transaction Manager Facet.Durable Log of the Core Transaction Manager.

    • Set the transaction state to Phase One Complete.

    • Signal the Phase One Complete event on the Superior Enlistment of the transaction's Transaction Manager Facet using the following arguments:

      • The Superior Enlistment object of the transaction

      • The Prepared outcome