3.2.7.23 Notify Aborted
The Notify Aborted event MUST be signaled with the following arguments:
A transaction object
If the Notify Aborted event is signaled, the Core Transaction Manager Facet (section 1.3.3.3.1) MUST perform the following actions:
Set the transaction's state to Aborting (section 3.2.1.3.11).
Move each Enlistment object in the transaction's Next Phase Zero Wave Enlistment list to the transaction's Phase Zero Enlistment list.
For each Enlistment object in the transaction's Phase Zero Enlistment list:
Signal the Phase Zero Aborted event (see sections 3.6.7.14 and 3.7.7.9) on the Enlistment's Transaction Manager facet field with the Enlistment object.
Move each Enlistment object in the transaction's Phase One (section 1.3.1.2) Voter Enlistment list to the transaction's Phase Two (section 1.3.1.3) Voter Enlistment list
For each Enlistment object in the transaction's Phase Two Voter Enlistment list:
Move each Enlistment object in the transaction's Phase One Enlistment list to the transaction's Phase Two Enlistment list.
If the transaction's Phase Two Enlistment list is not empty:
For each Enlistment object in the transaction's Phase Two Enlistment list:
Signal the Begin Rollback event (sections 3.4.7.5, 3.6.7.5 and 3.7.7.4) on the enlistment's Transaction Manager face field with the Enlistment object.
Otherwise, if the transaction's Phase Two Enlistment list is empty:
Signal the Forget Transaction (section 3.2.7.22) event on the Core Transaction Manager Facet with the provided transaction object.