Windows 10 컴퓨터에서 MS DTC에 대한 진단 추적 사용

이 문서에서는 Windows 10 컴퓨터에서 MS DTC(Microsoft Distributed Transaction Coordinator)에 대한 진단 추적을 사용하도록 설정하는 방법을 설명합니다.

원래 제품 버전: Windows 10
원래 KB 번호: 926099

중요

이 문서는 레지스트리 수정 방법에 대한 정보를 담고 있습니다. 레지스트리를 수정하기 전에 해당 레지스트리를 백업하는 것이 좋습니다. 문제가 발생하는 경우 레지스트리를 복원하는 방법을 알고 있어야 합니다. 레지스트리를 백업, 복원 및 수정하는 방법에 대한 자세한 내용은 고급 사용자에 대한 Windows 레지스트리 정보를 참조하세요.

추적 시설 유형

  • 트랜잭션 관리자 추적

    TM(트랜잭션 관리자) 추적은 트랜잭션 상태 변경 내용을 추적합니다. MS DTC 트랜잭션 관리자가 생성합니다. 출력은 이진 형식이며 출력의 형식을 지정해야 합니다. 트랜잭션 관리자는 MS DTC 서비스의 일부입니다.

  • 통신 관리자 오류 추적

    CM(통신 관리자) 오류 추적은 Msdtcprx.dll 파일을 로드하고 MS DTC의 RPC(원격 프로시저 호출) 인터페이스를 사용하여 다른 MS DTC 관련 프로세스와 통신하는 모든 프로세스를 추적합니다. 출력은 텍스트 형식입니다. 0x8004d00a 오류는 통신 관리자 오류 추적이 유용할 수 있는 일반적인 오류입니다.

참고

트랜잭션 관리자 추적 및 통신 관리자 오류 추적은 독립적인 프로세스입니다. 트랜잭션 관리자 추적 및 통신 관리자 오류 추적을 독립적으로 사용하도록 설정할 수 있습니다. 또는 독립적으로 사용하지 않도록 설정할 수 있습니다.

트랜잭션 관리자 추적 사용

Component Services MMC(Microsoft Management Console) 스냅인을 사용하여 트랜잭션 관리자 추적을 사용하도록 설정할 수 있습니다. 이렇게 하려면 다음과 같이 하십시오.

  1. 시작을 선택하고, 모든 프로그램을 선택하고, 액세서리를 선택한 다음, 실행을 선택합니다.

  2. comexp.msc를 입력한 다음 확인을 선택합니다.

  3. 구성 요소 서비스를 확장하고, 컴퓨터를 확장하고, 내 컴퓨터를 확장하고, 분산 트랜잭션 관리자를 확장하고, 로컬 DTC를 마우스 오른쪽 단추로 클릭한 다음 속성을 선택합니다.

  4. 추적 탭 선택합니다.

  5. 추적 탭에서 다음 TM 추적 옵션을 수정할 수 있습니다.

    • 추적 출력
      • 트랜잭션 추적
        • 모든 트랜잭션 추적
        • 중단된 트랜잭션 추적
        • 추적 Long-Lived 트랜잭션

TM 추적 구성을 변경하면 MS DTC 서비스에서 변경 내용을 검색합니다. 그러나 프로세스를 재활용할 필요는 없습니다. 예를 들어 추적되는 트랜잭션 또는 추적 파일의 위치를 변경하는 경우 MS DTC 서비스는 레지스트리의 변경 사항을 검색합니다. MS DTC 서비스를 다시 시작할 필요가 없습니다.

Windows의 새로운 MS DTC 추적 시스템

Windows에서 MS DTC에는 새롭고 광범위한 추적 시스템이 있습니다. 새 시스템에는 다음과 같은 디자인 목표가 있습니다.

  • 서식이 지정된 추적을 추가하려면 한 줄의 코드만 필요합니다.
  • 추적은 네트워크가 없는 프로덕션 컴퓨터에서 인간이 읽을 수 있습니다.
  • 출력 옵션은 유연합니다.
  • 추적 속도가 빠릅니다.
  • 옵션을 변경하려면 컴퓨터를 다시 시작할 필요가 없습니다.

또한 Windows 10 및 Windows Server Technical Preview 추적 로그 파일 이름에는 추적 로그를 호출한 프로세스의 이름이 포함됩니다. 출력 레지스트리 키에 의해 제어됩니다.

추적 구성

경고

레지스트리 편집기 또는 다른 방법을 사용하여 레지스트리를 잘못 수정하는 경우 심각한 문제가 발생할 수 있습니다. 이러한 문제를 해결하려면 운영 체제를 다시 설치해야 할 수 있습니다. Microsoft는 이러한 문제의 해결을 보증하지 않습니다. 레지스트리를 수정하는 데 따르는 위험은 사용자가 부담해야 합니다.

추적 구성은 MS DTC 레지스트리 키 아래에 이름이 지정된 Tracing 레지스트리 키의 로컬 노드에 있습니다. 레지스트리 키에는 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. 원하는 원본의 이름을 입력한 다음 Enter 키를 누릅니다. 원본 이름에 대한 자세한 내용은 원본 구성 섹션의 표를 참조하세요.

  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 XATM(XA 트랜잭션 관리자) 추적 원본
TRACE_LOG 로그 추적
TRACE_MTXOCI MTS/OCI 계층(Mtxoci.dll) 추적 원본
TRACE_ETWTRACE ETW(Windows용 이벤트 추적) 추적 원본
TRACE_PROXY MSDTC 프록시 DLL에서 생성된 추적
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 높은 추적을 사용하는 원본은 거의 없습니다.

추적 출력 구성

경고

레지스트리 편집기 또는 다른 방법을 사용하여 레지스트리를 잘못 수정하는 경우 심각한 문제가 발생할 수 있습니다. 이러한 문제를 해결하려면 운영 체제를 다시 설치해야 할 수 있습니다. Microsoft는 이러한 문제의 해결을 보증하지 않습니다. 레지스트리를 수정하는 데 따르는 위험은 사용자가 부담해야 합니다.

레지스트리 키에는 Output 추적 출력이 전송되는 위치를 제어하는 값 집합이 포함되어 있습니다. 이러한 값은 다음과 같습니다.

  • TraceFilePath (REG_SZ) 값은 추적 파일을 저장해야 하는 루트 폴더입니다. 추적은 msdtc-X.log 폴더의 파일에 기록됩니다. 이 폴더 이름에서 X 는 파일을 만드는 프로세스의 10진수 PID를 나타냅니다. 관심 있는 모든 프로세스가 구성된 폴더에 액세스할 수 있는지 확인합니다. 그렇지 않으면 추적 정보가 손실됩니다. 이 값을 설정하지 않으면 추적이 파일로 전송되지 않습니다.

  • (REG_DWORD) 값은 ImageNameInTraceFileNameEnabled 생성된 추적 로그 파일의 이름에 추적 로그를 호출한 프로세스의 이미지 파일 이름이 포함되어 있는지 여부를 결정합니다. 이 값을 0이 아닌 값으로 설정하면 프로세스의 이미지 파일 이름이 생성된 추적 로그 파일에 포함됩니다. 이 값을 0으로 설정하면 프로세스의 이미지 파일 이름이 생성된 추적 로그 파일에 포함되지 않습니다. 기본적으로 값은 0으로 설정됩니다. 다음은 생성된 로그 파일에 프로세스가 포함된 추적 파일 이름의 예입니다.
    MSDTC-msdtc.exe-3552.log 또는 MSDTC-svchost.exe - 3556.log

  • MemoryBufferSize (REG_DWORD) 값은 추적 메시지가 저장되는 순환 버퍼의 크기입니다. 이 값을 0으로 설정하면 메모리 추적이 비활성화됩니다. 기본적으로 이 값은 10MB입니다. 자세한 추적을 사용하도록 설정하면 이 값을 늘려야 할 수 있습니다.

  • (REG_DWORD) 값은 DebugOutEnabled 디버거에 대한 출력을 사용하거나 사용하지 않도록 설정합니다. 값이 0이 아닌 경우 출력이 사용하도록 설정됩니다. 기본적으로 이 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에서는 추적 기능을 사용할 수 없습니다. 따라서 일반 설치에는 성능 영향이 없습니다.

Microsoft 고객 지원 전문가가 문제를 진단하는 데 추적 정보가 필요하다고 표시하지 않는 한 프로덕션 컴퓨터에서 추적 기능을 사용하도록 설정하지 마세요. 추적은 컴퓨터 성능에 영향을 줄 수 있습니다. 먼저 문제를 찾아야 하며 문제를 resolve 합니다. 그런 다음 추적 기능을 즉시 사용하지 않도록 설정합니다.

클러스터 구성

클러스터 설치의 경우 모든 노드의 모든 레지스트리 항목에 이러한 레지스트리 항목이 포함되어 있는지 확인합니다. 이러한 레지스트리 항목이 없는 노드의 경우 레지스트리 항목이 로컬 컴퓨터 레지스트리에 없기 때문에 클러스터 코드는 공유 레지스트리의 레지스트리 항목을 무시합니다.