3.2.7.30 Resolve Transaction
The Resolve Transaction event MUST be signaled with the following arguments:
A transaction object.
A value indicating the desired Resolve Transaction outcome. This value MUST be set to one of the following values:
Committed
Aborted
Forgotten
If the Resolve Transaction event is signaled, the Core Transaction Manager Facet (section 1.3.3.3.1) MUST perform the following actions:
If the provided Resolve Transaction outcome is Committed or Aborted:
If the transaction state is not In Doubt (section 3.2.1.3.12):
Signal the Resolve Transaction Complete (section 3.4.7.16) event on the Transaction Manager communicating with an Application facet, with the following arguments:
The provided transaction object
The Not Prepared result
Otherwise:
If the provided Resolve Transaction outcome is Committed:
Signal the Notify Recovered Transaction Committed (section 3.2.7.24) event on the Core Transaction Manager Facet (section 1.3.3.3.1) with the provided transaction object.
Signal the Resolve Transaction Complete (section 3.4.7.16) event on the Transaction Manager communicating with an Application facet with the following arguments:
The provided transaction object
The Committed result
Otherwise, if the provided Resolve Transaction outcome is Aborted:
Signal the Notify Aborted (section 3.2.7.23) event on the Core Transaction Manager Facet (section 1.3.3.3.1) with the provided transaction object.
Signal the Resolve Transaction Complete (section 3.4.7.16) event on the Transaction Manager communicating with an Application facet with the following arguments:
The provided transaction object
The Aborted result
Otherwise:
If the transaction state is not Failed to Notify (section 3.2.1.3.13):
Signal the Resolve Transaction Complete (section 3.4.7.16) event on the Transaction Manager communicating with an Application facet with the following arguments:
The provided transaction object
The Not Committed result
Otherwise:
Set the state of the connection object referenced by each Enlistment object in the transaction's Phase Two Enlistment list to Ended.
Signal the Forget Transaction (section 3.2.7.22) event on the Core Transaction Manager Facet (section 1.3.3.3.1) with the provided transaction object.
Signal the Resolve Transaction Complete (section 3.4.7.16) event on the Transaction Manager communicating with an Application facet, with the following arguments:
The provided transaction object
The Forgotten result