Windows 10 コンピューターで MS DTC の診断トレースを有効にする

この記事では、Windows 10 コンピューターで Microsoft 分散トランザクション コーディネーター (MS DTC) の診断トレースを有効にする方法について説明します。

元の製品バージョン: Windows 10
元の KB 番号: 926099

重要

この資料には、レジストリの編集方法が記載されています。 レジストリを変更する前に必ずレジストリのバックアップを作成してください。 また、問題が発生した場合に備えて、レジストリの復元方法を理解しておいてください。 レジストリをバックアップ、復元、変更する方法の詳細については、「 高度なユーザー向けの Windows レジストリ情報」を参照してください。

トレース機能の種類

  • トランザクション マネージャーのトレース

    トランザクション マネージャー (TM) トレースは、トランザクション状態の変更を追跡します。 MS DTC トランザクション マネージャーによって生成されます。 出力はバイナリ形式であり、出力は書式設定する必要があります。 トランザクション マネージャーは MS DTC サービスの一部です。

  • コミュニケーション・マネージャーのエラー・トレース

    通信マネージャー (CM) エラー トレースは、 Msdtcprx.dll ファイルを読み込み、MS DTC のリモート プロシージャ コール (RPC) インターフェイスを使用して他の MS DTC 関連プロセスと通信するプロセスを追跡します。 出力はテキスト形式です。 0x8004d00a エラーは、通信マネージャーのエラー トレースが役立つ一般的なエラーです。

注:

トランザクション・マネージャー・トレースおよび通信マネージャー・エラー・トレースは、独立したプロセスです。 トランザクション・マネージャー・トレースと通信マネージャー・エラー・トレースを個別に有効にすることができます。 または、個別に無効にすることもできます。

トランザクション マネージャートレースを有効にする

Component Services Microsoft Management Console (MMC) スナップインを使用して、トランザクション マネージャーのトレースを有効にすることができます。 これを行うには、次の手順を実行します。

  1. [ スタート] を選択し、[ すべてのプログラム] を選択し、[ アクセサリ] を選択して、[ 実行] を選択します。

  2. 「comexp.msc」と入力し、[OK] を選択します

  3. [コンポーネント サービス] を展開し、[コンピューター]、[マイ コンピューター] の順に展開し、[分散トランザクション マネージャー] を展開し、[ローカル DTC] を右クリックして、[プロパティ] を選択します

  4. [ トレース ] タブを選択します。

  5. [ トレース ] タブでは、次の TM トレース オプションを変更できます。

    • トレース出力
      • トレース トランザクション
        • すべてのトランザクションをトレースする
        • 中止されたトランザクションをトレースする
        • トレース Long-Lived トランザクション

TM トレース構成を変更すると、MS DTC サービスによって変更が検出されます。 ただし、プロセスをリサイクルする必要はありません。 たとえば、トレースされるトランザクションやトレース ファイルの場所を変更すると、MS DTC サービスによってレジストリの変更が検出されます。 MS DTC サービスを再起動する必要はありません。

Windows の新しい MS DTC トレース システム

Windows では、MS DTC には新しい広範なトレース システムがあります。 新しいシステムには、次の設計目標があります。

  • 書式設定されたトレースを追加するには、1 行のコードのみが必要です。
  • トレースは、ネットワークのない運用コンピューター上の人間が読み取り可能です。
  • 出力オプションは柔軟です。
  • トレースは高速です。
  • コンピューターを再起動してオプションを変更する必要はありません。

さらに、Windows 10とWindows Server Technical Previewでは、トレース ログ ファイル名には、トレース ログを呼び出したプロセスの名前が含まれます。 これは、出力レジストリ キーによって制御されます。

トレースを構成する

警告

レジストリ エディタや他の方法を使用してレジストリを変更する際、適切に変更しないと重大な問題を引き起こす可能性があります。 場合によっては、オペレーティング システムの再インストールが必要になります。 マイクロソフトは、このような問題の解決に関して、一切責任を負わないものとします。 レジストリの変更はユーザー自身の責任において行ってください。

トレース構成は、MS DTC レジストリ キーの下にあるレジストリ キー Tracing 内のローカル ノードにあります。 レジストリ キーには Tracing 、接続マネージャーのトレースが含まれています。 以前は、レジストリ キーを TraceCMErr 使用して接続マネージャートレースを構成しました。 Tracingレジストリ キーには、次の 2 つのサブ キーが含まれています。

  • Sources: このサブキーは、トレースの種類を構成します。
  • Output: このサブキーは、トレース出力を送信する場所を構成します。

注:

プロセスがレジストリ キーに Tracing アクセスできることを確認します。 既定では、Windows 構成ではこのキーは作成されません。また、このキーに対するアクセス許可は付与されません。 レジストリ エディターを使用して、トレース機能を構成できます。

トレース機能のレジストリ エントリを作成するには、次の手順に従います。

  1. [すべてのプログラムの>開始>] [アクセサリ>の実行] の順に選択し、「regedit」と入力して、[OK] を選択します

  2. 次のいずれかのサブキーを見つけて選択します。

    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Tracing\Sources
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Tracing\Output
  3. [ 編集 ] メニューの [ 新規] を選択し、エントリのデータ型を選択します。 たとえば、[ DWORD (32 ビット)] [値] を選択します。

  4. 目的のソースの名前を入力し、Enter キーを押します。 ソース名の詳細については、「ソースの 構成 」セクションの表を参照してください。

  5. 新しいレジストリ エントリを右クリックし、[ 変更] を選択し、[ 値データ ] ボックスに目的の値を入力して、[ OK] を選択します

  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 MSDTC プロキシ DLL で生成されるトレース
TRACE_KTMRM Kernel Transaction Manager との統合のためのトレース
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 は、ファイルを作成するプロセスの 10 進 PID を表します。 対象のすべてのプロセスが、構成されたフォルダーにアクセスできることを確認します。 そうしないと、トレース情報が失われます。 この値が設定されていない場合、トレースはファイルに送信されません。

  • (REG_DWORD) 値は ImageNameInTraceFileNameEnabled 、生成されるトレース ログ ファイルの名前に、トレース ログを呼び出したプロセスのイメージ ファイル名を含めるかどうかを決定します。 この値が 0 以外の値に設定されている場合、プロセスのイメージ ファイル名は、生成されたトレース ログ ファイルに含まれます。 この値が 0 に設定されている場合、プロセスのイメージ ファイル名は、生成されたトレース ログ ファイルには含まれません。 既定では、値は 0 (0) に設定されます。 生成されたログ ファイルにプロセスが含まれているトレース ファイル名の例を次に示します。
    MSDTC-msdtc.exe-3552.log または MSDTC-svchost.exe - 3556.log

  • MemoryBufferSize (REG_DWORD) 値は、トレース メッセージが格納される循環バッファーのサイズです。 この値が 0 に設定されている場合、メモリ トレースは無効になります。 既定では、この値は 10 MB です。 詳細トレースを有効にする場合は、この値を増やす必要があります。

  • (REG_DWORD) 値は DebugOutEnabled 、デバッガーへの出力を有効または無効にします。 値が 0 以外の場合、出力は有効になります。 既定では、この Output レジストリ キーは無効になっています。 接続マネージャーのエラー トレース構成を変更すると、 Msdtcprx.dll ファイルを読み込むプロセスがリサイクルされたときに変更が有効になります。 たとえば、接続マネージャーのエラー トレース構成に対する変更は、MS DTC サービス プロセスがリサイクルされるときに有効になります。

または、.reg ファイルを作成し、Registry エディターを使用してファイルをインポートすることもできます。 これを行うには、次の手順を実行します。

  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」と入力し、[OK] をクリックします

  3. [ ファイル ] メニューの [ インポート] を選択します。

  4. 手順 1 で作成したファイルを見つけて、[ 開く] を選択します。 [レジストリ エディター] ダイアログ ボックスが表示されます。

  5. [OK] を選択します。

  6. [ファイル] メニューの [終了] を選択します。

パフォーマンス効果

既定では、トレース機能は Windows では無効になっています。 そのため、通常のインストールではパフォーマンスに影響はありません。

Microsoft カスタマー サポート プロフェッショナルが、問題を診断するためにトレース情報が必要であることを示していない限り、運用コンピューターでトレース機能を有効にしないでください。 トレースは、コンピューターのパフォーマンスに影響する可能性があります。 まず、問題を見つけ、解決する必要があります。 次に、トレース機能をすぐに無効にします。

クラスター構成

クラスターのインストールの場合は、すべてのノードのすべてのレジストリ エントリにこれらのレジストリ エントリが含まれていることを確認します。 これらのレジストリ エントリを持たないノードの場合、レジストリ エントリがローカル コンピューター レジストリに存在しないため、クラスター コードは共有レジストリ内のレジストリ エントリを無視します。