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.