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

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

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

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

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

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

Ответ 1

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

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

Изменить: ссылка мертва. Исходный текст из ссылки выглядит следующим образом:

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

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

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

Screen shot

Ответ 2

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

Чтобы запустить MS DTC

  • Чтобы открыть Сервисы, в меню "Пуск" выберите "Панель управления".
  • На панели управления нажмите "Администрирование".
  • В "Администрировании" выберите "Службы". В области сведений щелкните Distributed Transaction Coordinator в списке услуг.
  • В меню "Действие" нажмите "Пуск".

Ответ 3

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