2

64 ビット システムで実行する必要がある COM+ アプリケーション (主に vb6 ベース) があります。Oracle データベース (10g、32 ビット) と通信することになっています。XA を無効にするとすべて正常に動作しますが、有効にすると次のエラーが表示されます。

XA トランザクション マネージャーは、XA リソース マネージャー DLL 内の "GetXaSwitch" 関数を呼び出しました。「GetXaSwitch」関数の呼び出しに失敗しました: ファイル=d:\nt\com\complus\dtc\dtc\xatm\src\xarmconn.cpp 行=2503。

私のオラクルクライアントは10g 32ビットです。

32 ビットと 64 ビットの互換性についてはよくわかりませんが、アプリケーションがレジストリの WOW64 部分 ([hklm/software/wow6432node/microsoft/msdtc/mtxoci]) にある MSDTC dll を呼び出していることがわかります。レジストリのネイティブ 64 ビット部分にある XADLL にアクセスします ([hklm/software/microsoft/msdtc/xall])。

そこで、そこにある参照を 32 ビット dll に変更しようとしましたが、読み込まれませんでした。

このエラーを修正する方法について何か考えがある人はいますか?

4

1 に答える 1

2

これは多くの場合、アクセス許可の問題である可能性があるようです (参照: http://support.microsoft.com/kb/816633 )。

于 2011-05-05T21:30:02.320 に答える