MSDTC и COM+ с базой данных Oracle на сервере Unix ошибка из-за
Я получаю следующую ошибку, когда объект COM+ с требуемой транзакцией пытается связаться с базой данных Oracle.
"Ниже приведен текст ошибки…
Связь с соответствующим менеджером транзакций не удалась. Внутреннее исключение: диспетчеру транзакций MSDTC не удалось получить транзакцию из исходного менеджера транзакций из-за проблем со связью. Возможные причины: брандмауэр присутствует и у него нет исключения для процесса MSDTC, две машины не могут найти друг друга по их именам NetBIOS, или поддержка сетевых транзакций не включена для одного из двух менеджеров транзакций. (Исключение из HRESULT: 0x8004D02B)
<Transaction(TransactionOption.Required)>
Тот же код работает на некоторых машинах, а не на других.
Попробовал брандмауэр (согласно результатам поиска Google). Брандмауэр отсутствует. Попытался удалить и добавить компоненты COM+. Пробовал очиститель реестра...
Любые входные данные приветствуются.
Спасибо
2 ответа
Нашел основную причину проблемы.
Это было связано с тем, что внешний доступ к базе данных (к серверу sql) осуществлялся в стеке вызовов, а SQL Server блокировал номер порта MDTC. Это сейчас исправлено.
РЕДАКТИРОВАТЬ:
Когда я сказал, что это было исправлено, как оказалось, это не так.
На самом деле проблема заключалась в том, что соединение по умолчанию зачислялось в MSDTC. Чтобы отключить это просто добавьте enlist=false; в строке подключения, и он остановится, автоматически подключите соединение к MSDTC.