использование одной области транзакции для запросов к базе данных на 2 разных серверах базы данных - PullRequest
2 голосов
/ 06 мая 2011

Я использую объем транзакции. Я хочу иметь область транзакций для 2 запросов, которые выполняются на разных серверах баз данных. Один запрос выполняется на одном сервере, а другой - на другом.

Однако один запрос будет иметь собственную область транзакции, так как он предназначен для работы с несколькими таблицами.

Я получаю следующее исключение

The partner transaction manager has disabled its support for remote/network transactions. (Exception from HRESULT: 0x8004D025)

Есть предложения по решению этой проблемы?

Ответы [ 2 ]

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

На удаленных хостах (в данном случае на серверах БД):

  • На панели управления откройте Администрирование, а затем откройте Службы компонентов.
  • Разверните Службы компонентов, щелкните правой кнопкой мыши Мой компьютер и выберите Свойства.
  • Перейдите на вкладку MSDTC, а затем нажмите Конфигурация безопасности.
  • Отметьте галочкой что-нибудь под "доступом по сети DTC".

Убедитесь, что брандмауэры не блокируют MSDTC также на клиентах и ​​серверах.

1 голос
/ 04 марта 2014

Как уже упоминалось в первом ответе, MSDTC должен быть включен на клиентских и серверных компьютерах.Однако, кроме того, может потребоваться дополнительная настройка, особенно если задействованы брандмауэры.Следующая ссылка: Устранение неполадок MSDTC описывает многие из возможных ошибок, как их исправить, а также некоторые полезные инструменты для отладки, такие как DTCTester и DTCPing .

Другие ссылки для устранения неполадок включают в себя:

...