Freigeben über


MSDTC : Oracle 10G client : New transaction cannot enlist in the specified transaction coordinator

Using Oracle Client version 10g (Windows 2003 SP1) to communicate with the Oracle Database Server (OS : Unix). When we enable the option for Transaction Support to be "Required " in the COM+ application we get the error : New transaction cannot enlist in the specified transaction coordinator.

Checklist

1. Checked MSDTC Security Configuration and corrected them by following the KB article : https://support.microsoft.com/default.aspx?scid=kb;EN-US;899191
2. Checked the registry entries at the following keys :
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL -- > MTXOCI set to --> C:\WINNT\system32\mtxoci.dll
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI :
"OracleXaLib"="oraclient10.dll"
"OracleSqlLib"="orasql10.dll"
"OracleOciLib"="oci.dll"

All of the above entries look good.

3. Ran Filemon and Regmon tools.
4. Regmon looked fine. In Filemon log , got "File Not Found" error for "ORAMTS10.DLL".
5. Referred the KB article at :
https://support.microsoft.com/default.aspx?scid=kb;EN-US;843044 according to which :

The Oramts.dll file is used when you try to use Microsoft Transaction Server (MTS) in a distributed environment. The .NET Framework Data Provider for Oracle (System.Data.OracleClient) calls the Application Programming Interfaces (APIs) that are publicly exposed by the Oramts.dll file. The Oramts.dll file is only available in Oracle client connectivity software. To install it on your computer, you must explicitly select the "Oracle Services for Microsoft Transaction Server" component during the installation of Oracle client connectivity software.

Resolution

Reinstalled Oracle Client 10g and selected the checkbox "Oracle Services for Microsoft Transaction Server" during installation. The setup installed the "ORAMTS10.DLL" on the system and resolved the issue.