32bit DLLs using MSDTC/oracle XA on 64 bit Win2k3
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?
It looks like this can often be a permissions issue (See: http://support.microsoft.com/kb/816633).
精彩评论