Udostępnij za pośrednictwem


Włączanie śledzenia diagnostycznego dla usługi MS DTC na komputerze z systemem Windows 10

W tym artykule omówiono sposób włączania śledzenia diagnostycznego dla programu Microsoft Distributed Transaction Coordinator (MS DTC) na komputerze z systemem Windows 10.

Oryginalna wersja produktu: Windows 10
Oryginalny numer KB: 926099

Ważne

Niniejszy artykuł zawiera informacje dotyczące modyfikowania rejestru. Przed zmodyfikowaniem rejestru wykonaj jego kopię zapasową. Upewnij się, że znasz sposób przywrócenia rejestru w przypadku wystąpienia problemu. Aby uzyskać więcej informacji na temat tworzenia kopii zapasowej, przywracania i modyfikowania rejestru, zobacz Informacje o rejestrze systemu Windows dla zaawansowanych użytkowników.

Typy obiektów śledzenia

  • Śledzenie menedżera transakcji

    Śledzenie menedżera transakcji (TM) śledzi zmiany stanu transakcji. Jest on generowany przez menedżera transakcji MS DTC. Dane wyjściowe są w formacie binarnym, a dane wyjściowe muszą być sformatowane. Menedżer transakcji jest częścią usługi MS DTC.

  • Śledzenie błędów menedżera komunikacji

    Śledzenie błędów menedżera komunikacji (CM) śledzi dowolny proces, który ładuje plik Msdtcprx.dll i używa interfejsu zdalnego wywołania procedury (RPC) MS DTC do komunikowania się z innymi procesami związanymi z usługą MS DTC. Dane wyjściowe są w formacie tekstowym. Błąd 0x8004d00a jest typowym błędem, dla którego śledzenie błędów menedżera komunikacji może być przydatne.

Uwaga 16.

Śledzenie menedżera transakcji i śledzenie błędów menedżera komunikacji są niezależnymi procesami. Można niezależnie włączyć śledzenie menedżera transakcji i śledzenie błędów menedżera komunikacji. Możesz też niezależnie je wyłączyć.

Włączanie śledzenia menedżera transakcji

Aby włączyć śledzenie menedżera transakcji, można użyć przystawki Microsoft Management Console (MMC). W tym celu wykonaj następujące kroki:

  1. Wybierz pozycję Start, wskaż kolejno pozycje Wszystkie programy, Akcesoria, a następnie wybierz polecenie Uruchom.

  2. Wpisz comexp.msc, a następnie wybierz przycisk OK.

  3. Rozwiń węzeł Usługi składowe, rozwiń węzeł Komputery, rozwiń węzeł Mój komputer, rozwiń węzeł Menedżer transakcji rozproszonych, kliknij prawym przyciskiem myszy pozycję Local DTC, a następnie wybierz polecenie Właściwości.

  4. Wybierz kartę Śledzenie .

  5. Na karcie Śledzenie można zmodyfikować następujące opcje śledzenia TM:

    • Dane wyjściowe śledzenia
      • Śledzenie transakcji
        • Śledzenie wszystkich transakcji
        • Śledzenie przerwanych transakcji
        • Śledzenie długotrwałych transakcji

Po zmianie konfiguracji śledzenia TM usługa MS DTC wykryje zmiany. Nie trzeba jednak przetwarzać tego procesu. Na przykład po zmianie śledzonych transakcji lub lokalizacji pliku śledzenia usługa MS DTC wykryje zmianę w rejestrze. Nie musisz ponownie uruchamiać usługi MS DTC.

Nowy system śledzenia MS DTC w systemie Windows

W systemie Windows usługa MS DTC ma nowy i rozbudowany system śledzenia. Nowy system ma następujące cele projektowe:

  • Aby dodać sformatowany ślad, wymagany jest tylko jeden wiersz kodu.
  • Ślad jest czytelny dla ludzi na komputerach produkcyjnych bez sieci.
  • Opcje danych wyjściowych są elastyczne.
  • Ślad jest szybki.
  • Aby zmienić opcje, nie trzeba ponownie uruchamiać komputera.

Ponadto w systemach Windows 10 i Windows Server Technical Preview nazwa pliku dziennika śledzenia zawiera nazwę procesu, który wywołał dziennik śledzenia. Jest to kontrolowane przez klucz rejestru danych wyjściowych.

Konfigurowanie śledzenia

Ostrzeżenie

Niepoprawne zmodyfikowanie rejestru przy użyciu Edytora rejestru lub innej metody może stać się przyczyną poważnych problemów. Ich rozwiązanie może wymagać ponownego zainstalowania systemu operacyjnego. Firma Microsoft nie może zagwarantować, że rozwiązanie tych problemów będzie możliwe. Rejestr można modyfikować na własną odpowiedzialność.

Konfiguracja śledzenia znajduje się w węźle lokalnym w kluczu rejestru o nazwie Tracing w kluczu rejestru MS DTC. Klucz Tracing rejestru zawiera śledzenie menedżera połączeń. Wcześniej użyto klucza rejestru do skonfigurowania TraceCMErr śledzenia menedżera połączeń. Klucz Tracing rejestru zawiera następujące dwa klucze podrzędne:

  • Sources: ten klucz podrzędny konfiguruje rodzaj śledzenia.
  • Output: ten klucz podrzędny konfiguruje miejsce wysyłania danych wyjściowych śledzenia.

Uwaga 16.

Upewnij się, że proces może uzyskać dostęp do Tracing klucza rejestru. Domyślnie konfiguracja systemu Windows nie tworzy tego klucza i nie udziela uprawnień do tego klucza. Edytor rejestru służy do konfigurowania funkcji śledzenia.

Aby utworzyć wpisy rejestru funkcji śledzenia, wykonaj następujące kroki:

  1. Wybierz pozycję Uruchom>wszystkie programy>Akcesoria>Uruchom, wpisz regedit, a następnie wybierz przycisk OK.

  2. Znajdź, a następnie wybierz jeden z następujących kluczy podrzędnych:

    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Tracing\Sources
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Tracing\Output
  3. W menu Edycja wybierz pozycję Nowy, a następnie wybierz typ danych wpisu. Na przykład wybierz wartość DWORD (32-bitowa).

  4. Wpisz nazwę żądanego źródła, a następnie naciśnij ENTER. Aby uzyskać więcej informacji na temat nazw źródłowych, zobacz tabelę w sekcji Konfigurowanie źródeł .

  5. Kliknij prawym przyciskiem myszy nowy wpis rejestru, wybierz pozycję Modyfikuj, wpisz odpowiednią wartość w polu Dane wartości, a następnie wybierz przycisk OK.

  6. W menu Plik kliknij polecenie Wyjdź.

Konfigurowanie źródeł

Klucz Sources rejestru zawiera zestaw wartości rejestru DWORD wymienionych w poniższej tabeli.

Nazwa/nazwisko opis
TRACE_MISC Ślady, których nie można podzielić na inne kategorie
TRACE_CM Ślady w menedżerze połączeń
TRACE_TRACE Sama infrastruktura śledzenia
TRACE_SVC Uruchamianie usługi Traces i pliku .exe
TRACE_GATEWAY Źródło bramy
TRACE_UI Śledzi interfejs użytkownika
TRACE_CONTACT Śledzi pulę kontaktów i kontakty
TRACE_UTIL Procedury narzędzi śledzenia wywoływane z wielu lokalizacji
TRACE_CLUSTER Śledzi kod specyficzny dla klastra (narzędzie)
TRACE_RESOURCE Śledzi kod specyficzny dla zasobu klastra
TRACE_TIP Źródło śledzenia protokołu internetowego transakcji (TIP)
TRACE_XA Źródło śledzenia menedżera transakcji XA (XATM)
TRACE_LOG Śledzenie dzienników
TRACE_MTXOCI Źródło śledzenia warstwy MTS/OCI (Mtxoci.dll)
TRACE_ETWTRACE Śledzenie zdarzeń dla źródła śledzenia systemu Windows (ETW)
TRACE_PROXY Ślady generowane w bibliotece DLL serwera proxy MSDTC
TRACE_KTMRM Śledzenie integracji z menedżerem transakcji jądra
TRACE_VSSBACKUP Śledzenie integracji z mechanizmem tworzenia i przywracania kopii zapasowych Microsoft Visual SourceSafe
TRACE_PERFMON Śledzenie z obsługą liczników wydajności

Wartość DWORD powinna być liczbą z zakresu od 0 do 255. Wartość DWORD wskazuje poziom śledzenia, który występuje. W poniższej tabeli wymieniono możliwe wartości DWORD.

Wartość Opis
0 const BYTE TRACE_OFF
1 const BYTE TRACE_ERROR
2 const BYTE TRACE_WARNING
3 const BYTE TRACE_INFO
100 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

Uwaga 16.

Wyższe wartości automatycznie zawierają niższe wartości. W związku z tym po włączeniu TRACE_INFO poziomu TRACE_ERROR poziom jest również włączony. Bardzo niewiele źródeł używa śledzenia, które jest wyższe niż TRACE_VERBOSE poziom.

Konfigurowanie danych wyjściowych śledzenia

Ostrzeżenie

Niepoprawne zmodyfikowanie rejestru przy użyciu Edytora rejestru lub innej metody może stać się przyczyną poważnych problemów. Ich rozwiązanie może wymagać ponownego zainstalowania systemu operacyjnego. Firma Microsoft nie może zagwarantować, że rozwiązanie tych problemów będzie możliwe. Rejestr można modyfikować na własną odpowiedzialność.

Klucz Output rejestru zawiera zestaw wartości, które kontrolują miejsce wysyłania danych wyjściowych śledzenia. Te wartości są następujące:

  • Wartość TraceFilePath (REG_SZ) to folder główny, w którym powinny być przechowywane pliki śledzenia. Śledzenie jest zapisywane w pliku w folderze o nazwie msdtc-X.log. W tej nazwie folderu X reprezentuje dziesiętną piD procesu, który tworzy plik. Upewnij się, że wszystkie interesujące procesy mają dostęp do skonfigurowanego folderu. W przeciwnym razie informacje śledzenia zostaną utracone. Jeśli ta wartość nie jest ustawiona, ślady nie są wysyłane do pliku.

  • Wartość ImageNameInTraceFileNameEnabled (REG_DWORD) określa, czy nazwa wygenerowanego pliku dziennika śledzenia zawiera nazwę pliku obrazu procesu, który wywołał dziennik śledzenia. Jeśli ta wartość jest ustawiona na wartość inną niż zero, nazwa pliku obrazu procesu zostanie uwzględniona w wygenerowanym pliku dziennika śledzenia. Jeśli ta wartość jest ustawiona na zero, nazwa pliku obrazu procesu nie zostanie uwzględniona w wygenerowanych plikach dziennika śledzenia. Domyślnie wartość jest ustawiona na zero (0). Poniżej przedstawiono przykład nazwy pliku śledzenia, w którym wygenerowany plik dziennika zawiera proces:
    MSDTC-msdtc.exe-3552.log lub MSDTC-svchost.exe — 3556.log

  • MemoryBufferSize Wartość (REG_DWORD) to rozmiar buforu cyklicznego, w którym są przechowywane komunikaty śledzenia. Jeśli ta wartość jest ustawiona na 0, śledzenie pamięci jest wyłączone. Domyślnie ta wartość to 10 MB. Jeśli włączysz pełne śledzenie, może być konieczne zwiększenie tej wartości.

  • DebugOutEnabled Wartość (REG_DWORD) włącza lub wyłącza dane wyjściowe debugera. Jeśli wartość jest niezerowa, dane wyjściowe są włączone. Domyślnie ten Output klucz rejestru jest wyłączony. Po zmianie konfiguracji śledzenia błędów menedżera połączeń zmiany zostaną zastosowane po przetworzeniu procesu, który ładuje plik Msdtcprx.dll . Na przykład zmiany konfiguracji śledzenia błędów menedżera połączeń zaczęły obowiązywać po przetworzeniu procesu usługi MS DTC.

Alternatywnie możesz utworzyć plik .reg, a następnie zaimportować plik za pomocą Edytora rejestru. W tym celu wykonaj następujące kroki:

  1. Utwórz nowy plik .reg zawierający następujący przykład kodu:

    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. Wybierz pozycję Uruchom>wszystkie programy>Akcesoria>Uruchom, wpisz regedit, a następnie kliknij przycisk OK.

  3. W menu Plik wybierz pozycję Importuj.

  4. Znajdź plik utworzony w kroku 1, a następnie wybierz pozycję Otwórz. Zostanie wyświetlone okno dialogowe Edytor rejestru.

  5. Wybierz przycisk OK.

  6. W menu Plik kliknij polecenie Wyjdź.

Efekt wydajności

Domyślnie funkcja śledzenia jest wyłączona w systemie Windows. W związku z tym żaden wpływ na wydajność nie istnieje w przypadku zwykłej instalacji.

Nie włączaj funkcji śledzenia na komputerach produkcyjnych, chyba że specjalista pomocy technicznej firmy Microsoft wskazuje, że informacje dotyczące śledzenia są wymagane do zdiagnozowania problemu. Śledzenie może mieć wpływ na wydajność komputera. Najpierw musisz znaleźć problem i należy go rozwiązać. Następnie natychmiast wyłącz funkcje śledzenia.

Konfiguracja klastra

W przypadku instalacji klastra upewnij się, że wszystkie wpisy rejestru we wszystkich węzłach zawierają te wpisy rejestru. W przypadku każdego węzła, który nie ma tych wpisów rejestru, kod klastra ignoruje wpisy rejestru w rejestrze udostępnionym, ponieważ wpisy rejestru nie istnieją w rejestrze komputera lokalnego.