I\'ve tried for nearly a week now to get distributed transactions working. I\'ve some procedures on MSSQL which try to select data from MySQL. My need is to do this in one(!
There are two important aspects here --
1) It seems that OLE DB does have support for distributed transactions - so I would assume that the Microsoft OLE DB Provider for ODBC Data Sources should too...
I would also assume that if MSDASQL did support distributed transactions then it would handle that functionality directly rather than delegating it to the ODBC Driver...
Distributed transactions are turned on in the ODBC driver by calling --
SQLSetConnectAttr(SQL_ATTR_ENLIST_IN_DTC)
So, enabling OpenLink driver logging via the DSN creation dialogs should help determine whether SQLSetConnectAttr(SQL_ATTR_ENLIST_IN_DTC) is called.
2) We would need to see additional tracing in order to see the ODBC activity immediately leading up to the "Driver does not support this function" error...
You can log a support case with OpenLink Software to take this further...
The following steps are required if you want to use XA data sources together with Microsoft Distributed Transaction Coordinator (MS DTC) for handling distributed transactions:
On Windows XP and Windows Server 2003:
From Control Panel, open Administrative Tools, and then open Component Services. You can also click the Start button, click Run, type dcomcnfg in the Open box, and then press OK to open Component Services.
Expand Component Services, Computers and right-click My Computer, and then select Properties.
Click the MSDTC tab, and then click Security Configuration.
Select the Enable XA Transactions check box, and then click OK. This will cause a MS DTC service restart.
Click OK again to close the Properties dialog box, and then close Component Services.
Stop and then restart SQL Server to ensure that it syncs up with the MS DTC changes.
On Windows Vista and Windows Server 2008:
Click the Start button, type dcomcnfg in the Start Search box, and then press ENTER to open Component Services. You can also type %windir%\system32\comexp.msc in the Start Search box to open Component Services.
Expand Component Services, Computers, My Computer, and then Distributed Transaction Coordinator.
Right-click Local DTC and then select Properties.
Click the Security tab on the Local DTC Properties dialog box.
Select the Enable XA Transactions check box, and then click OK. This will cause a MS DTC service restart.
Click OK again to close the Properties dialog box, and then close Component Services.
Stop and then restart SQL Server to make sure that it syncs up with the MS DTC changes.
See also Registry Entries Are Required for XA Transaction Support and validate that the third party driver XA DLL creates these registry entries.