Почему во время выполнения служб SSIS не запускается распределенная транзакция? - PullRequest
11 голосов
/ 15 сентября 2009

При создании пакета служб SSIS для SQL Server 2008 я сталкиваюсь со следующей ошибкой:

Ошибка: во время выполнения служб SSIS не удалось начать распределенную транзакцию из-за к ошибке 0x8004D01B «Транзакция Менеджер недоступен. ". DTC транзакция не началась. это может произойти, потому что служба MSDTC не работает.

Я создаю и запускаю пакет локально на моей машине, но база данных находится на сервере под управлением Windows Server 2008, который не в домене.

Я убедился, что служба DTC запускается как локально, так и на сервере, и я добавил исключения брандмауэра, которые предварительно определены в брандмауэре Windows Vista.

Почему во время выполнения служб SSIS не удается запустить распределенную транзакцию?

Ответы [ 3 ]

6 голосов
/ 08 февраля 2017

У меня была такая же проблема, однако MS DTC не работал на моей машине. Чтобы включить координатора транзакций, мне нужно было сделать следующее:

Для запуска MS DTC

  1. Чтобы открыть Службы, в меню Пуск выберите Панель управления.
  2. На панели управления нажмите Администрирование.
  3. В Администрировании щелкните Службы. В области сведений нажмите Distributed Transaction Coordinator в списке услуг.
  4. В меню «Действие» нажмите «Пуск».
5 голосов
/ 15 сентября 2009

Проверьте мое решение этой проблемы здесь [http://faiz.kera.la/2009/08/26/ssis-transaction-enabled-tasks-fail-due-to-msdtc]

Это распространенный сценарий, если ваши машины не находятся в домене или не работают под управлением Windows XP.

Изменить: ссылка не работает. Оригинальный текст по ссылке выглядит так:

В моем текущем проекте у нас в команде несколько разработчиков служб SSIS, и мы все делим экземпляр сервера базы данных в моей системе. Вчера мы столкнулись с проблемой, когда напарник пытался реализовать транзакции в SSIS. Пакет не работает на других машинах, хотя он работает нормально в моей системе, где находится база данных. Выброшенное сообщение об ошибке было

Среде выполнения служб SSIS не удалось подключить соединение OLE DB в распределенная транзакция с ошибкой 0x8004D00E «транзакция имеет уже были явно или явно зафиксированы или отменены »

Вскоре мы поняли, что это что-то, связанное с координатором распределенных транзакций Microsoft (MsDTC). Мы провели поиск и получили инструмент под названием «Dtcping.exe», который будет проверять состояние работоспособности процессов MsDTC на разных компьютерах. Средство сообщило об ошибке «Доступ запрещен», что указывает на некоторые проблемы с безопасностью в MsDTC. Но нам не повезло даже после пары часов поиска в Google. Затем я решил использовать настройки безопасности для MsDTC и обнаружил, что все сетевые подключения по умолчанию отключены. Я узнал, что настройки аутентификации могут вызвать проблемы, так как наши машины работали под управлением Windows XP и находились в рабочей группе (у нас странная конфигурация сети в моей организации). Я изменил на «Не требуется аутентификация» для экземпляров MsDTC на всех машинах, и это сработало! Чтобы изменить конфигурацию безопасности для MsDTC, перейдите в Панель управления >> Администрирование >> Службы компонентов >> Компьютеры >> Щелкните правой кнопкой мыши Мой компьютер, а затем выберите Свойства >> Перейдите на вкладку MSDTC >> Нажмите Конфигурация безопасности. Ниже приведен снимок экрана с настройками, которые я использовал, но я не рекомендую эту конфигурацию для всех случаев, так как я не знаю о влиянии, которое она может оказать на securiy.

Screen shot

0 голосов
/ 26 ноября 2015

Ошибка: во время выполнения служб SSIS не удалось запустить распределенную транзакцию из-за ошибки 0x8004D01B «Менеджер транзакций недоступен». Не удалось запустить транзакцию DTC. Это может произойти из-за того, что служба MSDTC не работает.

...