32-битные библиотеки DLL, использующие MSDTC / oracle XA на 64-битной Win2k3 - PullRequest
2 голосов
/ 07 апреля 2011

У меня есть приложение COM + (в основном на базе vb6), которое мне нужно запустить в 64-битной системе. Он должен связываться с базой данных оракула (10g, 32bit). Все работает нормально, когда я отключаю XA, но когда я его включаю, я получаю следующую ошибку:

Диспетчер транзакций XA называется Функция «GetXaSwitch» в XA менеджер ресурсов DLL. Призыв к Сбой функции «GetXaSwitch»: Файл = d: \ NT \ ком \ Complus \ DTC \ DTC \ XATM \ SRC \ xarmconn.cpp Линия = 2503.

Мой клиент-оракул 10g 32-битный.

Я не знаю много о 32-битной / 64-битной совместимости, но я вижу, что мое приложение вызывает библиотеки MSDTC, расположенные в части реестра WOW64 ([hklm / software / wow6432node / microsoft / msdtc / mtxoci] ), пока он обращается к XADLL, расположенному в собственной 64-битной части реестра ([hklm / software / microsoft / msdtc / xadll])

Поэтому я попытался изменить ссылки на 32-битные библиотеки DLL, но тогда они не загружались.

У кого-нибудь есть идеи, как исправить эту ошибку?

1 Ответ

2 голосов
/ 06 мая 2011

Похоже, что это часто может быть проблема с разрешениями (см .: http://support.microsoft.com/kb/816633).

...