На сервере 2008r2 отсутствует местный DTC.

Вопрос или проблема

У меня недавно возникла проблема, при которой MSDTC не удавалось запуститься.

Ошибка в командной строке при запуске net start msdtc указывала на проблемы с конфигурацией.
Я зашел в реестр и установил настройки конфигурации на те же значения, что и в стандартной установке MSDTC.

После этого MSDTC удалось запустить, однако локальный DTC кажется отсутствующим в компонентах служб.

Master of Hide and Seek!

Я следовал шагам здесь.

  1. net stop msdtc
  2. msdtc -uninstall
  3. msdtc -install
  4. net start msdtc

И шагам здесь.
Что аналогично вышеуказанной процедуре, но также включает удаление конфигурации реестра.

Я также восстановил резервную копию реестра и перезагрузил систему.
И перезагрузился после переустановки.

Пока что, что бы я ни делал, локальный DTC скрывается от меня.
Кто-нибудь знает, что здесь может быть неправильно, и как переустановить локальный DTC?

ОБНОВЛЕНИЕ:
Пока я пытался найти больше способов установки локального DTC, я обнаружил, что командлеты Powershell на самом деле полностью отсутствуют.

Если у кого-нибудь есть решение/причина для этого, это может мне помочь.

ОБНОВЛЕНИЕ 2:
По просьбе другой темы я повторил процедуру, убеждаясь, что командная строка запущена от имени администратора.
После выполнения команд в просмотрщике событий были найдены следующие события:

Служба Microsoft Distributed Transaction Coordinator была
успешно удалена.
Служба Microsoft Distributed Transaction
Coordinator успешно установлена.

Обновление 3:
Я обнаружил, что в первый раз при открытии Компоненты служб после новой установки и при щелчке по папке Distributed Transaction Coordinators, следующая ошибка появляется в журнале приложений:

Менеджер подключений MS DTC не может зарегистрироваться в RPC для использования одного из LRPC, TCP/IP или UDP/IP.
Пожалуйста, убедитесь, что RPC настроен правильно. Если в реестре настроен ключ “ServerTcpPort” (значение DWORD под HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC для локального экземпляра DTC или под кластерным разделом для кластерного экземпляра DTC), пожалуйста, проверьте, является ли настроенный порт действительным и не используется ли он другим компонентом.
Подробности ошибки: hr = 0x80070057, d:\w7rtm\com\complus\dtc\dtc\cm\src\iomgrsrv.cpp:2523, CmdLine: “C:\Windows\system32\mmc.exe” “C:\Windows\system32\comexp.msc” , Pid: 6096

Что, кажется, указывает на проблему с брандмауэром, но полное отключение брандмауэра и начало процедуры с пункта 1 не помогло.

Я начинаю думать, что единственный доступный вариант – уничтожить сервер с орбиты.

Если вы настраиваете небольшой диапазон портов RPC, он может быть полностью занят, и MSDTC не удается получить порт, так как все порты заняты. Я бы удалил это ограничение RPC и использовал бы стандартный динамический диапазон портов 49152-65535.

Если вы настроите MSDTC на использование фиксированного порта с ServerTcpPort, лучше зарезервировать этот порт и избегать использования порта в динамическом диапазоне RPC, чтобы избежать использования этого порта другими приложениями перед запуском MSDTC. Например, им назначены порты из стандартного диапазона портов 49152-65535, а MSDTC настроен на использование, например, порта 50000. Обычно я рекомендую установить локальный MSDTC на использование фиксированного порта ниже динамического диапазона, но значительно выше известных нижних портов, например, 30001 (ServerTcpPort + резервирование), а затем кластерные фиксированные порты MSDTC на 30002+. Таким образом, вы также можете фильтровать сетевые трассировки для быстрого устранения неполадок, вместо того чтобы постоянно использовать новый динамический порт.

Ответ или решение

Когда вы имеете дело с пропажей локального Distributed Transaction Coordinator (DTC) на сервере Windows Server 2008 R2, это может быть весьма разочаровывающая проблема, особенно учитывая, что вам уже удалось перезапустить службу MSDTC после исправления конфигурации в реестре. Давайте разберем этот вопрос более подробно и предложим возможные решения на основании предоставленной информации.

Теория

Microsoft Distributed Transaction Coordinator (MSDTC) — это компонент Windows, ответственный за координацию транзакций, охватывающих несколько ресурсов, таких как базы данных, очереди сообщений и файловые системы. Когда локальный DTC не отображается в компонентных службах, это может быть связано с несколькими проблемами конфигурации, в которых играют роль сетевые настройки, регистрационные данные, а также службы RPC (Remote Procedure Call).

Проблемы и возможные причины

  1. Некорректные настройки конфигурации: Есть вероятность, что настройки в вашем реестре могли быть повреждены или просто находятся в некорректном состоянии, препятствующем нормальной работе DTC.

  2. Проблемы с RPC: Блокировка портов или неверная конфигурация RPC может помешать MSDTC успешно зарегистрироваться и начать работу, как об этом свидетельствует ошибка в журнале приложений.

  3. Конфликты портов: Если ServerTcpPort для MSDTC использует порт, который уже занят другой службой или попадает в пределы ограниченного диапазона RPC, это может помешать корректному запуску.

Пример

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

Применение

С учетом вышеизложенного, вот шаги, которые вы можете предпринять для решения проблемы:

  1. Проверка конфигурации RPC и DTC: Убедитесь, что диапазон динамических портов RPC не является слишком узким. Вы можете настроить более широкий диапазон портов, например, 49152-65535, чтобы избежать конфликтов.

  2. Настройка фиксированного порта: Установите фиксированный порт для MSDTC ниже динамического диапазона RPC, например, 30001. Это можно сделать, добавив ключ реестра ServerTcpPort и установив для него значение.

  3. Резервирование порта: Если назначаете фиксированный порт, убедитесь, что эти порты зарезервированы и исключены из использования другими приложениями.

  4. Проверка брандмауэра: Даже если отключение брандмауэра не помогло, убедитесь, что необходимые порты открыты для использования. Гибкая настройка может усилить безопасность при предотвращении непредвиденных конфликтов.

  5. Дополнительный аудит: Проверьте журнал событий и другие логи на наличие других ошибок или конфликтов, которые могут препятствовать работе MSDTC.

  6. Восстановление системы: Как крайняя мера, если проблема не решается, рассмотрите возможность использования точки восстановления системы или переустановки ОС.

  7. Обновления и патчи: Убедитесь, что все обновления и патчи для Windows Server 2008 R2 были установлены, так как они могут содержать исправления для подобных проблем.

Следуя этим рекомендациям, вы сможете более точно определить причину проблемы и найти соответствующее решение для ваших нужд. Трудности с конфигурацией и взаимодействием MSDTC и RPC встречаются не так уж редко, особенно в старых системах, и требуют комплексного подхода для успешного разрешения.

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

Капча загружается...