在64位Win2k3上使用MSDTC / oracle XA的32位DLL

时间:2011-04-07 07:35:25

标签: vb6 oracle10g msdtc wow64 xa

我有一个COM +应用程序(主要是基于vb6),我需要在64位系统上运行。它应该与oracle数据库(10g,32位)通信。当我禁用XA时,一切正常,但是当我启用它时,我收到以下错误;

  

XA事务管理器调用了   XA中的“GetXaSwitch”功能   资源管理器DLL。打电话给   “GetXaSwitch”功能失败:   文件= d:\ NT \ COM \ COMPLUS \ DTC \ DTC \ XATM的\ src \ xarmconn.cpp   行= 2503。

我的oracle客户端是10位32位。

我不太了解32位/ 64位兼容性,但我确实看到我的应用程序正在调用位于注册表的WOW64部分的MSDTC dll([hklm / software / wow6432node / microsoft / msdtc / mtxoci] ),它访问位于注册表的本机64位部分的XADLL([hklm / software / microsoft / msdtc / xadll])

所以我尝试将那里的引用更改为32位dll,但之后它们就不会加载。

有没有人对如何修复此错误有任何想法?

1 个答案:

答案 0 :(得分:2)

看起来这通常是权限问题(请参阅:http://support.microsoft.com/kb/816633)。