Two-Pipe Resource Manager Enlistment

 

Applies To: Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server Technical Preview, Windows Vista

  1. The ODBC driver invokes IDtcToXaMapper::TranslateTridToXid to convert the OLE Transactions identifier (TRID) to an XA transaction identifier (XID). It passes in the ITransaction pointer, the RMCookie, and a pointer to a pre-allocated XID structure.

  2. The DTC proxy generates an XID and returns it in the XID structure.

  3. The ODBC driver constructs an xa_start_entry message containing the XID and sends it to the resource manager.

  4. The resource manager associates the connection with the XID and then replies to the xa_start_entry message.

  5. The ODBC driver invokes IDtcToXaMapper::EnlistResourceManager, passing in the RMCookie, a pointer to the transaction object, and a pointer to its ITransactionResourceAsync interface.

  6. The DTC proxy informs the transaction manager that the ODBC driver wants to enlist in the transaction.

  7. The ODBC driver returns from the SQLSetConnectAttr call, and the application is free to perform work using the enlisted resource manager connection.