Поделиться через


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

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

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

Внимание

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

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

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

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

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

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

Примечание.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Конфигурация трассировки расположена на локальном узле в разделе реестра, который называется 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 Источник трассировки протокола INTERNET (TIP) транзакций
TRACE_XA Источник трассировки диспетчера транзакций XA (XATM)
TRACE_LOG Трассировка журнала
TRACE_MTXOCI Источник трассировки УРОВНЯ 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. Поэтому на обычную установку не существует никакого эффекта производительности.

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

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

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