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) スナップインを使用して、トランザクション マネージャーのトレースを有効にすることができます。 これを行うには、次の手順を実行します。
[スタート]、[すべてのプログラム]、[アクセサリ]、[ファイル名を指定して実行] の順に選択します。
「 comexp.msc」と入力し、 OK を選択します。
Component Servicesを展開し、Computersを展開し、My Computer を展開し、Distributed Transaction Manager を右クリックして Local DTC を選択し、Properties を選択します。
[ Tracing タブを選択します。
[ トレース ] タブでは、次の 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 構成ではこのキーは作成されないため、このキーへのアクセス許可は付与されません。 レジストリ エディターを使用してトレース機能を構成できます。
トレース機能のレジストリ エントリを作成するには、次の手順に従います。
Start>All Programs>Accessories>Run を選択し、「regedit」と入力して、OK を選択します。
次のいずれかのサブ キーを見つけて選択します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Tracing\Sources
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Tracing\Output
Edit メニューの New を選択し、エントリのデータ型を選択します。 たとえば、 DWORD (32 ビット) 値を選択します。
目的のソースの名前を入力し、Enter キーを押します。 ソース名の詳細については、「 ソースの構成 」セクションの表を参照してください。
新しいレジストリ エントリを右クリックし、 Modify を選択し、 Value data ボックスに必要な値を入力し、 OKを選択します。
[ファイル] メニューの [終了] を選択します。
ソースの構成
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.logMemoryBufferSize
(REG_DWORD) 値は、トレース メッセージが格納される循環バッファーのサイズです。 この値が 0 に設定されている場合、メモリ トレースは無効になります。 既定では、この値は 10 MB です。 詳細トレースを有効にする場合は、この値を増やす必要があります。DebugOutEnabled
(REG_DWORD) 値は、デバッガーへの出力を有効または無効にします。 値が 0 以外の場合、出力は有効になります。 既定では、このOutput
レジストリ キーは無効になっています。 接続マネージャーのエラー トレース構成を変更すると、 Msdtcprx.dll ファイルを読み込むプロセスがリサイクルされたときに変更が有効になります。 たとえば、接続マネージャーのエラー トレース構成の変更は、MS DTC サービス プロセスがリサイクルされるときに有効になります。
または、.reg ファイルを作成し、レジストリ エディターを使用してファイルをインポートすることもできます。 これを行うには、次の手順を実行します。
次のコード例を含む新しい.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
Start>All Programs>Accessories>Run を選択し、「regedit」と入力し、[OK] をクリック。
[ File メニューの Import を選択します。
手順 1 で作成したファイルを見つけて、 Open を選択します。 [ 登録エディター ] ダイアログ ボックスが表示されます。
[OK] を選択します。
[ファイル] メニューの [終了] を選択します。
パフォーマンス効果
既定では、トレース機能は Windows では無効になっています。 そのため、通常のインストールではパフォーマンスに影響はありません。
Microsoft カスタマー サポート プロフェッショナルが問題の診断にトレース情報が必要であることを示していない限り、実稼働コンピューターでトレース機能を有効にしないでください。 トレースは、コンピューターのパフォーマンスに影響する可能性があります。 まず、問題を見つけ、解決する必要があります。 次に、トレース機能をすぐに無効にします。
クラスター構成
クラスターのインストールでは、すべてのノードのすべてのレジストリ エントリにこれらのレジストリ エントリが含まれていることを確認します。 これらのレジストリ エントリがないノードの場合、レジストリ エントリがローカル コンピューター レジストリに存在しないため、クラスター コードは共有レジストリのレジストリ エントリを無視します。