3.6.5.2.1.1 Receiving a TXUSER_PHASE0_MTAG_CREATE Message

When the transaction manager receives a TXUSER_PHASE0_MTAG_CREATE message, the transaction manager communicating with a resource manager facet MUST perform the following actions:

  • If the connection state is Idle:

    • Set the connection state to Awaiting Create Response (section 3.6.1.3.2).

    • Find the transaction object in the transaction table of the transaction manager using the guidTx field from the message.

    • If the transaction is not found:

    • Otherwise:

      • Create a new Enlistment object with the following values:

        • The transaction manager communicating with a resource manager facet

        • The transaction object

        • The connection

      • Set the Resource Manager Identifier field of the Enlistment object to a NULL GUID.

      • Assign the new Enlistment object to the enlistment field of the connection.

      • Signal the Create Phase Zero Enlistment event on the Core Transaction Manager Facet with the Enlistment object.

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