3.7.5.1.2.1.6 Receiving a PARTNERTM_PROPAGATE_MTAG_PREPAREREQDONE Message

When the superior transaction manager receives a PARTNERTM_PROPAGATE_MTAG_PREPAREREQDONE message, the superior transaction manager MUST perform the following actions:

  • If the connection state is Awaiting Prepare Response:

    • Signal the Enlistment Phase One Complete (section 3.2.7.16) event on the Core Transaction Manager Facet (section 1.3.3.3.1) with the following arguments:

      • The Enlistment object that is referenced by this connection.

      • The outcome value that is determined by the prepareReqDone field from the message. The outcome value is set to:

        • Prepared if the prepareReqDone field is PARTNERTM_PROPAGATE_PREPAREREQDONE_OK.

        • Aborted if the prepareReqDone field is PARTNERTM_PROPAGATE_PREPAREREQDONE_ABORT.

        • Read Only if the prepareReqDone field is PARTNERTM_PROPAGATE_PREPAREREQDONE_READ_ONLY.

        • Committed if the prepareReqDone field is PARTNERTM_PROPAGATE_PREPAREREQDONE_SINGLEPHASE_COMMIT.

        • In Doubt if the prepareReqDone field is PARTNERTM_PROPAGATE_PREPAREREQDONE_SINGLEPHASE_INDOUBT.

    • If the prepareReqDone value is Prepared:

      • Set the connection state to Prepared.

    • Otherwise, set the connection state to Ended.

  • Otherwise, the message MUST be processed as an invalid message as specified in section 3.1.6.