Sync Framework コンポーネントのトレース
Sync Framework では、いくつかのコンポーネントの実行をトレースできます。これは、アプリケーションのデバッグに便利です。ほとんどの Sync Framework コンポーネントのトレースは、Event Tracing for Windows (ETW) インフラストラクチャを使ってネイティブ コード レベルで行われます。ETW インフラストラクチャの詳細については、「イベントのトレース」を参照してください。
マネージ API はネイティブ API の薄いラッパーにすぎないので、API のマネージ バージョンに対する開発を行う場合にも、ETW を使用できます。Sync Framework データベース プロバイダーは .NET Framework の実装に基づくマネージ トレースを提供します。詳細については、「同期プロセスをトレースする方法」を参照してください。
トレース ツールのダウンロードと使用方法
ETW が必要とするトレース ツールは Windows サポート ツールに含まれています。これは Windows のバージョンごとに用意されています。たとえば、Windows XP SP2 に必要なツールは Microsoft ダウンロード センターの ページにあります。Sync Framework のトレースに必要なツールは次の表で説明します。
トレース ツール | 説明 | 構文リファレンス |
---|---|---|
Tracelog.exe |
トレースのログ記録を開始、停止、または有効化します。 |
|
Tracefmt.exe |
イベント トレースのログ ファイル (.etl) またはリアルタイムのトレース セッションからトレース メッセージを表示します。 |
トレースの出力を表示するには、トレース ログを開始し、トレースを有効にして、表示用にトレースの書式を設定します。
トレース ロガーを開始するには
トレース ロガーを開始するには、ロガー名とトレース ファイル名を指定し、ファイルを書き込む方法を制御するパラメーターも指定します (tracelog.exe -start <LoggerName> <LoggerParameters> -f <PathToEtlFile>
)。たとえば、次のコマンドを使用できます。
tracelog.exe -start "Sync" -paged -b 32 -max 100 -cir 20 -ls -f %TEMP%\SyncFramework.etl
トレースを有効にするには
トレースを有効にするには、トレースするコンポーネントの GUID、トレースするサブコンポーネントを示すフラグのビット マスク、およびトレース レベルを示す整数を指定します。たとえば、tracelog.exe -
enable <LoggerName> -guid <ComponentTracingId> -flags <Flags> -level <Level>
のようにします。この例では、Sync Framework のコア コンポーネントとそのすべてのサブコンポーネントのトレースを有効にします。トレース レベルは 4 (エラー以外の情報メッセージを含む) に設定されます。
tracelog.exe -enable "Sync" -guid #5978339c-8ab2-467e-bb85-8832659d5ed0 -flags 0xffff -level 4
Sync Framework のオプションの完全な一覧については、このトピックの「Sync Framework のトレースの参照」を参照してください。
トレース ファイルを書式設定して表示するには
トレースを表示するには、ロガーをフラッシュし、.tmf ファイルを使用してバイナリ トレース ファイルを書式設定します。Sync Framework 用の .tmf ファイルは、Microsoft ダウンロード センターからダウンロードできます。次のようなコマンドを使用して、Sync ロガーからのトレースを表示します。
ロガーをフラッシュするには、
tracelog.exe -flush "Sync"
を実行します。.tmf ファイルを Sync Framework インストール パス (Program Files\Microsoft SDKs\Microsoft Sync Framework\v2.0) から作業ディレクトリ (
%TEMP%\TMF
など) にコピーします。ファイルを書式設定するには、
tracefmt.exe %TEMP%\SyncFramework.etl -p %TEMP%\TMF -o %TEMP%\SyncFrameworkTrace.txt
を実行します。ファイルを表示するには、
%TEMP%\SyncFrameworkTrace.txt
を開きます。
トレースを停止するには
前述で開始した Sync ロガーを停止するには、tracelog.exe -stop "Sync"
を実行します。
Sync Framework のトレースの参照
次の表は Sync Framework コンポーネントを識別する GUID を示します。
コンポーネント | コンポーネント トレース ID |
---|---|
コア フレームワークとランタイム |
5978339c-8ab2-467e-bb85-8832659d5ed0 |
簡易プロバイダー |
69c896b3-e183-428d-9e30-4b519b156828 |
Web 同期コンポーネント |
0958c02f-01cb-4b28-badf-1431c83a931e |
Metadata Storage Service |
67161b7f-60ff-4368-832e-670f2327a7e4 |
ファイル同期プロバイダー |
b5fac8e8-25e0-4468-926e-54cd8514f8a0 |
トレース フラグ
次の表は、どのサブコンポーネントをトレースするかを指定するために tracelog.exe の -flags
パラメーターに渡すことのできるビット マスク フラグを示します。
コア フレームワークと実行時フラグ
トレース フラグの名前 | ビット マスク | 説明 |
---|---|---|
TRACE_MSG_KNOWLEDGE |
0x0001 |
ナレッジ操作の同期 |
TRACE_MSG_SYNC_SERVICES |
0x0002 |
アプリケーション同期サービスやプロバイダー同期サービスなどの同期サービス |
TRACE_MSG_SYNC_SESSION |
0x0004 |
同期セッションと同期セッションの状態 |
TRACE_MSG_CHANGE_APPLIER |
0x0008 |
通知を行う変更適用元 |
TRACE_MSG_CHANGE_BATCH |
0x0010 |
変更バッチ |
TRACE_MSG_CHANGE |
0x0020 |
個々の変更 |
TRACE_MSG_FILTER |
0x0040 |
変更フィルター |
TRACE_MSG_IN_MEMORY_CONFLICT_LOG |
0x0080 |
メモリ内競合ログ |
TRACE_MSG_CHANGE_APPLICATION_SERVICES |
0x0100 |
変更適用拡張サービス |
簡易プロバイダー フラグ
トレース フラグの名前 | ビット マスク | 説明 |
---|---|---|
TRACE_MSG_SIMPLESYNCWRAPPER |
0x0001 |
簡易プロバイダー (サブコンポーネントは定義されません) |
Web 同期コンポーネント フラグ
トレース フラグの名前 | ビット マスク | 説明 |
---|---|---|
TRACE_MSG_FEEDSYNC |
0x0001 |
Web 同期コンポーネント (サブコンポーネントは定義されません) |
Metadata Storage Service のフラグ
トレース フラグの名前 | ビット マスク | 説明 |
---|---|---|
TRACE_MSG_METADATA_STORE |
0x0001 |
Metadata Storage Service (サブコンポーネントは定義されません) |
ファイル同期プロバイダー フラグ
トレース フラグの名前 | ビット マスク | 説明 |
---|---|---|
TRACE_MSG_FSP |
0x0001 |
ファイル同期プロバイダー (サブコンポーネントは定義されません) |
トレース レベル
次の表は、Sync Framework によって使用されるトレース レベルを示します。レベルが高くなるほどログの内容が詳しくなります。上位レベルには下位レベルの内容も含まれます。たとえば、レベル 4 のトレースではレベル 1 ~ 3 のすべての情報にレベル 4 の情報が追加されます。
トレース レベル | 値 | 説明 |
---|---|---|
TRACE_LEVEL_NONE |
0 |
トレースなし |
TRACE_LEVEL_CRITICAL |
1 |
異常な終了や停止 |
TRACE_LEVEL_ERROR |
2 |
サーバー エラー |
TRACE_LEVEL_WARNING |
3 |
問題を示唆する警告 |
TRACE_LEVEL_INFORMATION |
4 |
エラー以外の場合も含めた情報 |
TRACE_LEVEL_METADATA_INFORMATION |
5 |
同期メタデータについての情報 |
TRACE_LEVEL_FUNCTION |
6 |
いつ関数への出入りがあったかを示す情報 |