Both the Microsoft ODBC for Oracle driver and the Microsoft OLE DB Provider for Oracle rely on Mtxoci.dll to provide support for distributed transactions. When Mtxoci.dll is first loaded, it attempts to read the Oracle client DLL keys from the registry to determine the proper Oracle client DLLs to load.
On Microsoft Windows 95, Microsoft Windows 98 or Microsoft Windows NT 4.0-based computers, these keys are located under the following registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Transaction Server\Local Computer\My Computer
On Microsoft Windows 2000-based computers, these keys are located under the following registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI
There are 3 string values under these keys:
- OracleXaLib
- OracleSqlLib
- OracleOciLib
Depending on which version of the Oracle client you have installed, these keys can point to different Oracle client DLL names. These keys are documented in the following Microsoft Knowledge Base article:
193893 INFO: Using Oracle with Microsoft Transaction Server and COM+
The code to read these registry keys in Mtxoci.dll requests KEY_ALL_ACCESS rights when attempting to read these keys. If the client process does not have adequate permissions to open these keys (for example, under Internet Information Server [IIS] or inside of a Microsoft Transaction Server [MTS] or Component Object Model [COM+] host running under a System account), Mtxoci.dll fails to read the keys and defaults back to hard-coded settings for the Oracle 7.x client DLLs.
If the Oracle client DLLs cannot be found, the Microsoft Oracle drivers unload Mtxoci.dll and uses Ociw32.dll directly. Use of Ociw32.dll disables support for distributed transactions with the Microsoft Oracle drivers and can result in a "Driver not capable" error message being reported to the client. Note that with certain versions of Mtxoci.dll this could incorrectly report the following error message:
ORA-00000: normal, successful completion.
Refer to the following Microsoft Knowledge Base article for more information:
254675 FIX: DTC/MTS Errors Cause 'Ora-00000 normal, successful completion' Messages