在 64 位 Win2k3 上使用 MSDTC/oracle XA 的 32 位 DLL
我有一个 COM+ 应用程序(主要基于 vb6),需要在 64 位系统上运行。它应该与 oracle 数据库(10g,32 位)通信。当我禁用 XA 时,一切正常,但是当我启用它时,我收到以下错误;
XA 事务管理器称为 XA 中的“GetXaSwitch”函数 资源管理器 DLL。致电给 “GetXaSwitch”函数失败: 文件=d:\nt\com\complus\dtc\dtc\xatm\src\xarmconn.cpp 行=2503。
我的oracle客户端是10g 32位的。
我对 32 位/64 位兼容性了解不多,但我确实看到我的应用程序正在调用位于注册表 WOW64 部分的 MSDTC dll ([hklm/software/wow6432node/microsoft/msdtc/mtxoci]),而它访问位于注册表本机 64 位部分的 XADLL ([hklm/software/microsoft/msdtc/xadll])
因此我尝试将其中的引用更改为 32 位 dll,但随后它们不会加载。
有谁对如何修复此错误有任何想法吗?
I have a COM+ application (mostly vb6 based), that I need running on a 64-bit system. It's supposed to communicate with an oracle database (10g, 32bit). Everything works fine when I disable XA, but when I have it enabled I receive the following error;
The XA Transaction Manager called the
"GetXaSwitch" function in the XA
resource manager DLL. The call to the
"GetXaSwitch" function failed:
File=d:\nt\com\complus\dtc\dtc\xatm\src\xarmconn.cpp
Line=2503.
My oracle client is 10g 32-bit.
I don't know a lot about 32bit/64bit compatibility, but I do see that my application is calling the MSDTC dlls located in the WOW64 part of the registry ([hklm/software/wow6432node/microsoft/msdtc/mtxoci]), while it access the XADLL located in the native 64-bit part of the registry ([hklm/software/microsoft/msdtc/xadll])
So I tried to change the references in there to be 32-bit dlls, but then they would not load.
Does anyone have any ideas at all on how to fix this error?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看起来这通常可能是权限问题(请参阅:http://support.microsoft.com/kb/ 816633)。
It looks like this can often be a permissions issue (See: http://support.microsoft.com/kb/816633).