3.2.7.19 Enlistment Unilaterally Aborted
The Enlistment Unilaterally Aborted event MUST be signaled with the following arguments:
An Enlistment object
If the Enlistment Unilaterally Aborted event is signaled, the Core Transaction Manager Facet (section 1.3.3.3.1) MUST perform the following actions:
If the transaction state is Active (section 3.2.1.3.2), Phase Zero (section 3.2.1.3.3), Phase Zero Complete (section 3.2.1.3.4), Voting (section 3.2.1.3.5), Voting Complete (section 3.2.1.3.6) or Phase One (section 3.2.1.3.7):
Remove the provided Enlistment object from any of the following transaction lists in which it is present:
Next Phase Zero Wave Enlistment list
Phase One Enlistment list
Phase One Voter Enlistment list
If the transaction state is Phase Zero (section 3.2.1.3.3):
Signal the Phase Zero Complete (see sections 3.4.7.14 and 3.8.7.6) event on the transaction's Superior Enlistment's Transaction Manager Facet with the following arguments:
The transaction's Superior Enlistment object
The Failure outcome
Otherwise, if the transaction state is Voting (section 3.2.1.3.5) or Phase One (section 3.2.1.3.7):
Otherwise:
Signal the Notify Aborted (section 3.2.7.23) event on the Core Transaction Manager Facet (section 1.3.3.3.1) with the transaction object referenced by the Transaction field of the provided Enlistment object.
Otherwise, ignore the event.