2011-04-07 98 views
2

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

XA事务管理器调用的XA 资源管理器DLL的 “GetXaSwitch” 功能。 “GetXaSwitch”函数调用失败: File = d:\ nt \ com \ complus \ dtc \ dtc \ xatm \ src \ xarmconn.cpp Line = 2503。

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

我对32位/ 64位的兼容性知之甚少,但我确实看到我的应用程序正在调用位于注册表WOW64部分的MSDTC DLL([hklm/software/wow6432node/microsoft/msdtc/mtxoci ]),而它访问位于注册表本地64位部分的XADLL([hklm/software/microsoft/msdtc/xadll])

所以我试图改变那里的引用是32位DLL,但他们不会加载。

有没有人有任何想法如何解决这个错误?

回答

2

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

+0

欣赏输入,但它似乎不是关于权限。我已经在32位系统上复制了系统,并且运行良好。在我的测试系统上授予权利时,我也是超级自由的,所以应该包括在内。 – cc0 2011-05-09 11:29:20