3.2.7.5 Begin Phase Zero
The Begin Phase Zero event MUST be signaled with the following arguments:
A transaction object
If the Begin Phase Zero event is signaled, the Core Transaction Manager Facet MUST perform the following actions:
Set the transaction state to Phase Zero (section 3.2.1.3.3).
Move each Enlistment object in the Next Phase Zero Wave Enlistment list of the transaction to the Phase Zero Enlistment list of the transaction.
Set the Phase Zero Registered flag of the transaction object to FALSE.
If the Phase Zero Enlistment list of the transaction is not empty:
For each Enlistment object in the Phase Zero Enlistment list of the transaction:
Signal the Begin Phase Zero event (see sections 3.6.7.4 and 3.7.7.3) on the Enlistment object's transaction manager facet with the Enlistment object.
Otherwise:
Set the transaction state to Phase Zero Complete (section 3.2.1.3.4).
Signal the Phase Zero Complete event (see sections 3.4.7.14 and 3.8.7.6) on the superior enlistment's transaction manager facet of the transaction with the following arguments:
The Superior Enlistment object of the transaction
The success outcome