Ошибка запуска службы MSDTC EventID 4691 "The run-time environment was unable to initialize for transactions required to support transactional components. Make sure that MS-DTC is running. (DtcGetTransactionManagerEx(): hr = 0x80004005)"

MSDTC service cant startЭто вторая история, ноги у которой, судя по всему, растут из первой. Дело случилось на одном из ранее описанных виртуальных серверов на базе Windows Server 2012 R2, имевших проблему первичной инициализации в механизме OOBE (Out-of-Box Experience) после клонирования диска ВМ, предварительно подготовленного с помощью sysprep. После развёртывания оба сервера были успешно введены в домен Active Directory и без каких-либо сложностей сделаны участниками нового кластера Windows Failover Cluster. И всё с виду было хорошо до тех пор, пока не настало время установки агента System Center DPM на оба этих сервера.

На первый виртуальный сервер агент DPM установился без вопросов, а при попытке параллельной установки на второй сервер в консоли DPM мы получили ошибку следующего вида: 

Error 313: The agent operation failed because an error occurred while running the installation program on KOM-DB02.holding.com.
Error details: Fatal error during installation (0x80070643)
Recommended action: Review the log files on KOM-DB02.holding.com: [windir]\temp\msdpm*.log and take appropriate action. Retry the operation, and if the error persists, restart the computer and then retry the operation again.

DPM Agent Installation Error 313 0x80070643

Ошибки, фигурирующие в указанном текстовом логе на виртуальном сервере ситуацию не сильно прояснили, по крайней мере очевидных для нашего уровня знаний ответов на свои вопросы мы там не нашли. Было решено проанализировать event-логи на предмет ошибок, возникающих перед ошибками развёртывания агента DPM. Выяснилось, что сопряжённой ошибкой была ошибка связанная с работой системной службы "Distributed Transaction Coordinator" (MSDTC).

Log Name:      Application
Source:        Microsoft-Windows-Complus
Event ID:      4691
Task Category: Executive
Level:         Error
Computer:      KOM-DB02.holding.com
Description:   The run-time environment was unable to initialize for transactions required to support transactional components. Make sure that MS-DTC is running. (DtcGetTransactionManagerEx(): hr = 0x80004005)

Открыв на проблемном сервере оснастку управления службами компонентов Control Panel\All Control Panel Items\Administrative Tools\Component Services (или comexp.msc), мы обнаружили, что свойства узла My Computer недоступны, а ручная попытка запуска службы MSDTC приводит к повторному появлению ошибки с кодом 4691.

Windows Component Services MSDTC not started

В результате поисков информации о возможных причинах проблем с запуском службы MSDTC была обнаружена статья: Microsoft Distributed Transaction Coordinator (MSDTC) service does not start after you run Sysprep. Хоть эта статья по описанию и не подходит к нашей версии ОС, но всё же мы решили заглянуть в реестр на предмет наличия там описанного в статье параметра:

HKLM\SOFTWARE\Microsoft\MSDTC\SysprepInProgress = 1

И такой параметр нашёлся…

MSDTC SysprepInProgress in Windows registry

Сравнение со вторым виртуальным сервером, как и с другими штатно работающими серверами, показало что в нормальной ситуации этот параметр должен иметь значение "0". И не смотря на то, что ручная установка нулевого значения не решила проблемы и служба MSDTC по прежнему не запускалась, теперь ошибки, регистрируемые в event-логе при попытке запуска, обрели несколько иной вид:

Log Name:    Application
Source:      Microsoft-Windows-MSDTC
Event ID:    4461
Level:       Error
Computer:    KOM-DB02.holding.com
Description: The MSDTC service cannot start because its contact identifiers are either missing, inaccessible, or corrupt. Running 'msdtc -uninstall' and then 'msdtc -install' from the command prompt will fix the problem. Note: Running 'msdtc -uninstall' will result in the system losing all MSDTC configuration information. Error Specifics: hr = 0x80100101, com\complus\dtc\dtc\msdtc\src\cservice.cpp:527, CmdLine: C:\Windows\System32\msdtc.exe, Pid: 1416

Было решено последовать рекомендации, данной в описании ошибки и выполнить переустановку службы MSDTC. Открыв командную строку с правами Администратора сначала выполняем команду удаления службы:

msdtc -uninstall

После выполнения этой команды служба "Distributed Transaction Coordinator" исчезнет из общего списка служб в оснастке управления службами Windows (services.msc). После этого выполняем команду повторной установки службы

msdtc -install

MSDTC services reinstallation

Служба снова появится в оснастке управления службами Windows. Только теперь после повторной установки тип запуска службы будет определён как "Manual". Изменим
тип запуска службы на "Automatic (Delayed Start)" и попробуем запустить службу снова.

MSDTC Service Automatic Delayed Start

На этот раз служба успешно запустилась и после перезапуска оснастки comexp.msc снова появилась возможность управления в узле Component Services. Финалом этой истории стала успешная установка агента DPM и неутешительной вывод о том, насколько коварным может быть некорректно отработавший механизм первичной инициализации ОС после sysprep и всякие нехорошие мысли о том, что ещё в системе могло сломаться, что "аукнется" в дальнейшем.

Всего комментариев: 4 Комментировать

  1. Александр /

    Доброго дня.
    Точно такая же ошибка при установке агента на одну ноду кластера.
    В Event такие ошибки:
    - The run-time environment was unable to initialize for transactions required to support transactional components. Make sure that MS-DTC is running. (DtcGetTransactionManagerEx(): hr = 0x80004005)

    - Faulting application name: MsiExec.exe, version: 5.0.9600.18333, time stamp: 0x572b8067
    Faulting module name: MSI28CB.tmp, version: 4.2.1603.0, time stamp: 0x59dcc3cf
    Exception code: 0xc0000005
    Fault offset: 0x000000000004e342
    Faulting process id: 0x105c
    Faulting application start time: 0x01d536e538b1c443
    Faulting application path: C:\Windows\System32\MsiExec.exe
    Faulting module path: C:\Windows\Installer\MSI28CB.tmp
    Report Id: 906def02-a2d8-11e9-80d4-0017a4770848
    Faulting package full name:
    Faulting package-relative application ID:

    -Product: Microsoft System Center 2012 R2 DPM Protection Agent - Update 'Microsoft System Center 2012 R2 DPM Protection Agent Update - KB4043315' could not be installed. Error code 1603. Additional information is available in the log file C:\Windows\\Temp\MSDPMAgentInstall.LOG.

    Пробую по первой ошибке - переустанавливаю MSDTC - удалилась, а вот не поставилась - ошибка
    ID4157 Could not stop the MS DTC service or or one of its dependent services.
    ID4160 Invalid command line arguments.

    Что-то стало криво. куда копать?
    Спасибо.

    1. Алексей Максимов / Автор записи

      Судя по "Could not stop the MS DTC service or or one of its dependent services.", возможно, что служба даже не удалилась. Возможно, это связано с тем, что удаление службы Вы пытаетесь выполнить, запустив командную строку не с правами Администратора. Как, например, здесь

      1. Александр /

        Проверил. запускаю от имени админа.
        Установил. в Event : "The Microsoft Distributed Transaction Coordinator service was successfully installed."
        В "Component Services" - "My Computer" виден, пробую ставить агента и все повторилось.
        Не инсталируется с такой информацией:
        "Windows Installer installed an update. Product Name: Microsoft System Center 2012 R2 DPM Protection Agent. Product Version: 4.2.1603.0. Product Language: 1033. Manufacturer: Microsoft Corporation. Update Name: Microsoft System Center 2012 R2 DPM Protection Agent Update - KB4043315. Installation success or error status: 1603."

        З.Ы. стоит агент 4.2.1205.0

  2. Александр /

    теперь еще одна ошибка появилась:
    "The Open Procedure for service "MSDTC" in DLL "C:\Windows\system32\msdtcuiu.DLL" failed. Performance data for this service will not be available. The first four bytes (DWORD) of the Data section contains the error code."

    Все веселей и веселей..

Добавить комментарий