Включение диагностической трассировки для MS DTC на Windows 10 компьютере

В этой статье описывается включение диагностической трассировки для координатора распределенных транзакций Майкрософт (MS DTC) на Windows 10 компьютере.

Исходная версия продукта: Windows 10
Исходный номер базы знаний: 926099

Важно!

В статье содержатся сведения об изменении реестра. Перед внесением изменений рекомендуется создать резервную копию реестра. и изучить процедуру его восстановления на случай возникновения проблемы. Дополнительные сведения о резервном копировании, восстановлении и изменении реестра см. в разделе Сведения о реестре Windows для опытных пользователей.

Типы средств трассировки

  • Трассировка диспетчера транзакций

    Трассировка диспетчера транзакций (TM) отслеживает изменения состояния транзакций. Он создается диспетчером транзакций MS DTC. Выходные данные приведены в двоичном формате, и выходные данные должны быть отформатированы. Диспетчер транзакций является частью службы MS DTC.

  • Трассировка ошибок диспетчера коммуникаций

    Трассировка ошибок диспетчера коммуникаций (CM) отслеживает любой процесс, который загружает файлMsdtcprx.dll и использует интерфейс удаленного вызова процедур (RPC) MS DTC для связи с другими процессами, связанными с MS DTC. Выходные данные в текстовом формате. Ошибка 0x8004d00a — это типичная ошибка, для которой может быть полезна трассировка ошибок диспетчера коммуникаций.

Примечание.

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

Включение трассировки диспетчера транзакций

Для включения трассировки диспетчера транзакций можно использовать оснастку Консоли управления Майкрософт (MMC). Для этого выполните следующие действия:

  1. Выберите Пуск, Все программы, Стандартные и Запустить.

  2. Введите comexp.msc и нажмите кнопку ОК.

  3. Разверните узлы Службы компонентов, Компьютеры, Мой компьютер, Диспетчер распределенных транзакций, щелкните правой кнопкой мыши Локальный DTC и выберите Свойства.

  4. Перейдите на вкладку Трассировка .

  5. На вкладке Трассировка можно изменить следующие параметры трассировки TM:

    • Выходные данные трассировки
      • Транзакции трассировки
        • Трассировка всех транзакций
        • Трассировка прерванных транзакций
        • Трассировка Long-Lived транзакций

При изменении конфигурации трассировки TM служба MS DTC обнаруживает изменения. Однако вам не нужно перезапускать процесс. Например, при изменении отслеживаемых транзакций или расположения файла трассировки служба MS DTC обнаруживает изменения в реестре. Вам не нужно перезапускать службу MS DTC.

Новая система трассировки MS DTC в Windows

В Windows MS DTC имеет новую и обширную систему трассировки. Новая система имеет следующие цели проектирования:

  • Для добавления отформатированной трассировки требуется только одна строка кода.
  • Трассировка доступна людям на рабочих компьютерах без сети.
  • Параметры вывода являются гибкими.
  • Трассировка выполняется быстро.
  • Для изменения параметров не нужно перезагружать компьютер.

Кроме того, в Windows 10 и Windows Server Technical Preview имя файла журнала трассировки включает имя процесса, который вызвал журнал трассировки. Это управляется разделом реестра Output.

Настройка трассировки

Предупреждение

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

Конфигурация трассировки находится на локальном узле в разделе реестра, который называется Tracing в разделе реестра MS DTC. Раздел Tracing реестра включает трассировку диспетчера подключений. Ранее вы использовали TraceCMErr раздел реестра для настройки трассировки диспетчера подключений. Раздел Tracing реестра содержит следующие два вложенных раздела:

  • Sources: этот вложенный ключ настраивает тип трассировки.
  • Output: этот вложенный ключ настраивает место отправки выходных данных трассировки.

Примечание.

Убедитесь, что процесс может получить доступ к разделу Tracing реестра. По умолчанию конфигурация Windows не создает этот ключ и не предоставляет разрешения для этого ключа. Для настройки функций трассировки можно использовать Редактор реестра.

Чтобы создать записи реестра функций трассировки, выполните следующие действия.

  1. Выберите Запустить>все программы>Стандартные>запуск, введите regedit и нажмите кнопку ОК.

  2. Найдите и выберите один из следующих вложенных ключей:

    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Tracing\Sources
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Tracing\Output
  3. В меню Правка выберите Создать, а затем выберите тип данных записи. Например, выберите Значение DWORD (32-бит).

  4. Введите имя нужного источника и нажмите клавишу ВВОД. Дополнительные сведения об именах источников см. в таблице раздела Настройка источников .

  5. Щелкните правой кнопкой мыши новую запись реестра, выберите Изменить, введите нужное значение в поле Значение и нажмите кнопку ОК.

  6. В меню Файл выберите Выход.

Настройка источников

Раздел Sources реестра содержит набор значений реестра DWORD, перечисленных в следующей таблице.

Имя Описание
TRACE_MISC Трассировки, которые не могут быть классифицированы по другим категориям
TRACE_CM Трассировки в диспетчере соединений
TRACE_TRACE Сама инфраструктура трассировки
TRACE_SVC Запуск службы трассировки и .exe файлов
TRACE_GATEWAY Источник шлюза
TRACE_UI Трассировка пользовательского интерфейса
TRACE_CONTACT Трассировка пула контактов и контактов
TRACE_UTIL Трассирует подпрограммы служебной программы, вызываемые из нескольких расположений
TRACE_CLUSTER Трассирует код для конкретного кластера (служебная программа)
TRACE_RESOURCE Трассировка кода для конкретного ресурса кластера
TRACE_TIP Источник трассировки транзакционных интернет-протоколов (TIP)
TRACE_XA Источник трассировки диспетчера транзакций XA (XATM)
TRACE_LOG Трассировка журнала
TRACE_MTXOCI Источник трассировки уровня MTS/OCI (Mtxoci.dll)
TRACE_ETWTRACE Источник трассировки событий Windows (ETW)
TRACE_PROXY Трассировки, созданные в библиотеке DLL прокси-сервера MSDTC
TRACE_KTMRM Трассировка для интеграции с диспетчером транзакций ядра
TRACE_VSSBACKUP Трассировка для интеграции с механизмом резервного копирования и восстановления Microsoft Visual SourceSafe
TRACE_PERFMON Трассировка с поддержкой счетчиков производительности

Значение DWORD должно быть числом от 0 до 255. Значение DWORD указывает уровень трассировки. В следующей таблице перечислены возможные значения DWORD.

Значение Описание
0 const BYTE TRACE_OFF
1 const BYTE TRACE_ERROR
2 const BYTE TRACE_WARNING
3 const BYTE TRACE_INFO
4 const BYTE TRACE_VERBOSE
5 const BYTE TRACE_VERY_VERBOSE
6 const BYTE TRACE_INOUT
0xF0 const BYTE TRACE_OBSCURE
0xff const BYTE TRACE_EVERYTHING

Примечание.

Более высокие значения автоматически включают более низкие значения. Поэтому при включении TRACE_INFO уровня TRACE_ERROR он также включается. Очень немногие источники используют трассировку, которая превышает TRACE_VERBOSE уровень.

Настройка выходных данных трассировки

Предупреждение

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

Раздел Output реестра содержит набор значений, определяющих, куда отправляются выходные данные трассировки. Ниже приведены следующие значения.

  • Значение TraceFilePath (REG_SZ) — это корневая папка, в которой должны храниться файлы трассировки. Трассировка записывается в файл в папке с именем msdtc-X.log. В этом имени папки X представляет десятичный PID процесса, создающего файл. Убедитесь, что все интересующие процессы могут получить доступ к настроенной папке. В противном случае сведения о трассировки будут потеряны. Если это значение не задано, трассировки не отправляются в файл.

  • Значение ImageNameInTraceFileNameEnabled (REG_DWORD) определяет, включает ли имя созданного файла журнала трассировки имя файла изображения процесса, вызвавского журнал трассировки. Если задано значение, отличное от нуля, имя файла изображения процесса будет включено в созданный файл журнала трассировки. Если это значение равно нулю, имя файла изображения процесса не будет включено в созданный файл журнала трассировки. По умолчанию значение равно нулю (0). Ниже приведен пример имени файла трассировки, в котором созданный файл журнала содержит процесс:
    MSDTC-msdtc.exe-3552.log или MSDTC-svchost.exe — 3556.log

  • Значение MemoryBufferSize (REG_DWORD) — это размер кругового буфера, в котором хранятся сообщения трассировки. Если для этого значения задано значение 0, трассировка памяти отключена. По умолчанию это значение равно 10 МБ. Возможно, вам потребуется увеличить это значение, если включить подробную трассировку.

  • Значение DebugOutEnabled (REG_DWORD) включает или отключает выходные данные для отладчика. Если значение ненулевое, выходные данные включены. По умолчанию этот Output раздел реестра отключен. При изменении конфигурации трассировки ошибок диспетчера соединений изменения вступают в силу при перезапуске процесса, загружающего файлMsdtcprx.dll . Например, изменения в конфигурации трассировки ошибок диспетчера соединений вступают в силу при перезапуске процесса службы MS DTC.

Кроме того, можно создать файл .reg, а затем импортировать его с помощью Редактор реестра. Для этого выполните следующие действия:

  1. Создайте файл .reg, содержащий следующий пример кода:

    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Tracing]
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Tracing\Output]
    "DebugOutEnabled"=dword:00000000
    "TraceFilePath"=""
    "MemoryBufferSize"=dword:0000000a
    "ImageNameInTraceFileNameEnabled"=dword:00000001
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Tracing\Sources]
    "TRACE_MISC"=dword:00000000
    "TRACE_CM"=dword:00000000
    "TRACE_TRACE"=dword:00000000
    "TRACE_SVC"=dword:00000000
    "TRACE_GATEWAY"=dword:00000000
    "TRACE_UI"=dword:00000000
    "TRACE_CONTACT"=dword:00000000
    "TRACE_UTIL"=dword:00000000
    "TRACE_CLUSTER"=dword:00000000
    "TRACE_RESOURCE"=dword:00000000
    "TRACE_TIP"=dword:00000000
    "TRACE_XA"=dword:00000000
    "TRACE_LOG"=dword:00000000
    "TRACE_MTXOCI"=dword:00000000
    "TRACE_ETWTRACE"=dword:00000000
    "TRACE_PROXY"=dword:00000000
    "TRACE_KTMRM"=dword:00000000
    "TRACE_VSSBACKUP"=dword:00000000
    
  2. Выберите Запустить>все программы>Стандартные>запуск, введите regedit и нажмите кнопку ОК.

  3. В меню Файл выберите Импорт.

  4. Найдите файл, созданный на шаге 1, и нажмите кнопку Открыть. Откроется диалоговое окно Реестр Редактор.

  5. Нажмите ОК.

  6. В меню Файл выберите Выход.

Эффект производительности

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

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

Конфигурация кластера

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