3.5.4.3 Enlisting on a Specific Transaction

This event MUST be signaled by the higher-layer business logic with the following arguments:

  • A transaction object.

If the higher-layer business logic decides to enlist on a specific transaction, the resource manager MUST perform the following steps:

  • Initiate a new CONNTYPE_TXUSER_ENLISTMENT (section 2.2.10.2.2) connection to the transaction manager, using the Transaction Manager Name field of the resource manager.

  • Assign the transaction object to the connection-specific data of the connection.

  • Add the connection to the connection list of the transaction.

  • Send a TXUSER_ENLISTMENT_MTAG_ENLIST (section 2.2.10.2.2.5) message using the connection:

    • Set the guidTX field to the Transaction Object.Identifier field of the transaction object.

    • Set the guidRM field to the Resource Manager.Identifier field of the resource manager.

    • Set the guidSession field to the Session Identifier field of the resource manager.

  • Set the connection state to Awaiting Enlistment Response.