3.5.4.3 Enlist Two-Pipe XA Resource Manager

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

  • Resource Manager Cookie

  • Transaction object

If the Enlist Two-Pipe XA Resource Manager event is signaled, the XA Resource Manager Bridge MUST perform the following actions:

  • Initiate a new CONNTYPE_XATM_ENLIST connection using the XA Resource Manager Bridge Facet Name field of the XA Resource Manager Bridge.

  • Attempt to find an XA Resource Manager Proxy object in the Two-Pipe XA Resource Manager Proxy Table referenced by the XA Resource Manager Bridge keyed by the provided Resource Manager Cookie.

  • If an object is found:

    • Construct an XA_XID by signaling the Create XID event and passing the following arguments:

      • The specified Resource Manager Cookie.

      • The specified Transaction Object.

    • Construct an STxInfo, defined in [MS-DTCO] section 2.2.5.10, using the following settings:

      • Set the guidSignature field to the binary value representation of the GUID {2adb4463-bd41-11d0-b12e-00c04fc2f3ef}.

      • Set uowTx field to Identifier field of the provided Transaction object.

      • SHOULD set tmprotUsed field to 3.<54>

      • Set cbProtocolSpecificTxInfo to 0.

    • Send XATMUSER_MTAG_ENLIST message to the CONNTYPE_XATM_ENLIST connection created previously, with the following arguments:

      • The Resource Manager Global Identifier field of the found XA Resource Manager Proxy object.

      • The constructed XA_XID.

      • lenImportCookie set to length of constructed STxInfo.

      • ImportCookie set to the constructed STxInfo.

    • Set the State of the CONNTYPE_XATM_ENLIST Connection to Awaiting Enlist Response.

  • Otherwise:

    • Return Failure.