3.2.7.2 Begin Commit
The Begin Commit event MUST be signaled with the following argument:
A transaction object
If the Begin Commit event is signaled, the Core Transaction Manager Facet MUST perform the following actions:
Set the transaction state to Committing (section 3.2.1.3.10).
If the Phase Two Voter Enlistment list of the transaction is not empty:
For each Enlistment object in the Phase Two Voter Enlistment list of transaction:
If the Phase Two Enlistment list of the transaction is not empty:
For each Enlistment object in the Phase Two Enlistment list of the transaction:
Signal the Begin Commit event on the enlistment's transaction manager facet field with the Enlistment object.
Otherwise, if the Phase Two Enlistment list of the transaction is empty:
Signal the Commit Complete (section 3.8.7.3) event on the transaction's superior enlistment's transaction manager facet with the transaction's Superior Enlistment object.
Signal the Forget Transaction (section 3.2.7.22) event on the Core Transaction Manager Facet with the provided transaction object.