次の方法で共有


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 エラーは、通信マネージャーのエラー トレースが役立つ可能性がある一般的なエラーです。

Note

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

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

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

  1. [スタート]、[すべてのプログラム]、[アクセサリ]、[ファイル名を指定して実行] の順に選択します。

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

  3. Component Servicesを展開し、Computersを展開し、My Computer を展開し、Distributed Transaction Manager を右クリックして Local DTC を選択し、Properties を選択します。

  4. [ Tracing タブを選択します。

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

    • トレース出力
      • トレース トランザクション
        • すべてのトランザクションをトレースする
        • 中止されたトランザクションのトレース
        • 有効期間の長いトランザクションをトレースする

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: このサブキーは、トレース出力の送信先を構成します。

Note

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

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

  1. Start>All Programs>Accessories>Run を選択し、「regedit」と入力して、OK を選択します。

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

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

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

  5. 新しいレジストリ エントリを右クリックし、 Modify を選択し、 Value data ボックスに必要な値を入力し、 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 Event Tracing for 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

Note

値が大きいほど、より小さい値が自動的に含まれます。 そのため、 TRACE_INFO レベルを有効にすると、 TRACE_ERROR レベルも有効になります。 TRACE_VERBOSE レベルより高いトレースを使用するソースはほとんどありません。

トレース出力を構成する

警告

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

Output レジストリ キーには、トレース出力の送信先を制御する値のセットが含まれています。 これらの値は次のとおりです。

  • TraceFilePath (REG_SZ) の値は、トレース ファイルを格納するルート フォルダーです。 トレースは、 msdtc-X.logという名前のフォルダー内のファイルに書き込まれます。 このフォルダー名では、 X は、ファイルを作成するプロセスの 10 進 PID を表します。 対象となるすべてのプロセスが、構成済みのフォルダーにアクセスできることを確認します。 そうしないと、トレース情報が失われます。 この値が設定されていない場合、トレースはファイルに送信されません。

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

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

  • DebugOutEnabled (REG_DWORD) 値は、デバッガーへの出力を有効または無効にします。 値が 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. Start>All Programs>Accessories>Run を選択し、「regedit」と入力し、[OK] をクリック

  3. [ File メニューの Import を選択します。

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

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

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

パフォーマンス効果

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

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

クラスター構成

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