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

发布于 2024-10-31 02:21:26 字数 565 浏览 1 评论 0原文

我有一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暗藏城府 2024-11-07 02:21:26

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

It looks like this can often be a permissions issue (See: http://support.microsoft.com/kb/816633).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文