Partager via


3.4.7.16 Resolve Transaction Complete

The Resolve Transaction Complete event MUST be signaled with the following arguments:

  • A transaction object.

  • A value indicating the result of the resolve transaction operation. The value MUST be set to one of the following values:

    • Committed

    • Aborted

    • Forgotten

    • Not Prepared

    • Not Committed

If the Resolve Transaction Complete event is signaled, the transaction manager MUST perform the following actions:

  • Find a CONNTYPE_TXUSER_RESOLVE (section 2.2.8.3.2) connection in the transaction's connection list.

  • If the connection is not found, ignore the event.

  • Otherwise:

    • If the resolve outcome is Committed, Aborted, or Forgotten:

      • Send a TXUSER_RESOLVE_MTAG_REQUEST_COMPLETE (section 2.2.8.3.2.7) message using the connection.

      • Set the connection state to Ended.

    • Otherwise, if the resolve outcome is Not Prepared:

      • Send a TXUSER_RESOLVE_MTAG_CHILD_NOT_PREPARED (section 2.2.8.3.2.4) message using the connection.

      • Set the connection state to Ended.

    • Otherwise, if the resolve outcome is Not Committed:

      • Send a TXUSER_RESOLVE_MTAG_FORGET_TX_NOT_COMMITTED (section 2.2.8.3.2.6) message using the connection.

      • Set the connection state to Ended.