3.2.7.23 Notify Aborted

The Notify Aborted event MUST be signaled with the following arguments:

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:

  • 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:

    • 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 facet field with the Enlistment object.

  • 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.