db2trc - トレース・コマンド
db2trc コマンドは、 Db2® インスタンスまたは Db2 Administration Server (DAS) のトレース機能を制御します。 db2trc コマンドが実行されると、トレース機能は操作に関する情報を記録し、その情報を読みやすい形式にフォーマット設定します。
トレース機能を有効にすると (デフォルトでは OFF)、システムのパフォーマンスに影響を与える可能性があります。 したがって、トレース機能は、Db2 技術サポート担当者から指示された場合のみ使用してください。
Db2 のトレースは、繰り返し発生して再現可能な問題を分析するときに特に役立ちます。
Db2 データベース・システムを使用しているときに、「トレースを取得して IBM ソフトウェア・サポートに連絡する」、「トレースをオンにしてトレース・レコードを確認する」、または「技術サポート担当者に連絡して次の情報を提供する」というエラー・メッセージが表示されることがあります。 SQLCODE、SQLCA の内容 (可能な場合)、およびトレース・ファイル (可能な場合)。 あるいは、 IBM ソフトウェア・サポートに問題を報告する際に、ご使用の環境に関する詳細情報を収集するためにトレースを実行するよう依頼される場合があります。
許可
- SYSADM
- SYSCTRL
- SYSMAINT
- DASADM
必要な接続
なし
コマンド構文
コマンド・パラメーター
- -appid
- トレースするアプリケーション ID を指定します。 -appid オプションは、on オプションまたはchangeオプションと連動します。 -appid は、-perfcount オプションと一緒に使用することはできません。
- -apphdl
- トレースするアプリケーション・ハンドルを指定します。 -apphdl オプションは、on オプションまたはchangeオプションと連動します。 -apphdl は、-perfcount オプションと一緒に使用することはできません。
- -member member_number | member_range
- どのデータベース・メンバー (パーティション) をトレースするか指定します。 このオプションを指定しない場合、このコマンドは db2trc コマンドが発行されるホスト上のすべての論理メンバーに対して実行されます。 複数のメンバーを、member_number のコンマ区切りリスト (member1, member2) として、または member_range (member_range はメンバーの範囲 (member1-member3)) を使用して指定できます。最初の 2 つの方式を組み合わせて使用することもできます。
- all
- db2nodes.cfgに定義されるすべてのメンバーに対してコマンドを発行するように指定します。
-member オプションは、on、change、format ( flow オプションと format オプションの両方)、 stopとoff オプションと共に使用できます。 詳しくは、下記の例 2 および 3 を参照してください。 -member オプションは、 -perfcount オプションと一緒に使用することはできません。
- db2
- すべてのトレース操作を Db2 インスタンスに対して実行することを指定します。 これがデフォルトです。
- das
- すべてのトレース操作を Db2 Administration Server インスタンスに対して実行することを指定します。
- cf
- すべてのトレース操作が CF サーバーで実行されることを指定します。 -change、 -clear 、-stop オプションは、このオプションでは機能しません。
- cfcli
- すべてのトレース操作が メンバーに対して実行されることを指定します。注: CF クライアント・トレースを有効にするには、環境変数 CA_TRACE_KEY_FILE を既存のファイルに設定する必要があります。 このファイルは、SHARED MEMORY セットを作成するために CF クライアント・ライブラリーによって使用されます。 このセットはトレース・データを収集するのに使用されます。 また、このファイルのアクセス権と所有者情報は、作成される SHARED MEMORY のアクセス権と所有者情報を設定するために使用されます。 同じ値に設定されるこの環境変数から始まるすべてのプロセスは、同じ SHARED MEMORY セグメントを使用することになります。 Db2 で使用されるデフォルト名は ${INSTHOME}/sqllib/tmp/.CF_DB2TRACE.keyです。 この環境変数は db2profile および db2cshrc ファイル内に自動的に設定されます。 ただし、これらがソース生成されていない場合には、この値を手動で設定する必要があります。注: CF クライアント・トレース・バッファーは 10 MB を超えることはできません。
- on
- トレース機能を開始するには、このパラメーターを使用します。 パラメーターのリストについては、下記の『共有トレース・オプション』のセクションを参照してください。
- -l [bufferSize]
- このオプションは、トレース・バッファーのサイズと振る舞いを指定します。 -l は、最後の追跡レコードが保持されることを指定します (つまり、バッファーが負荷超過になると、最初のレコードが上書きされます)。 バッファーのサイズはバイト単位またはメガバイト単位で指定できます。 メガバイト単位でバッファー・サイズを指定する場合は、バッファー・サイズに文字 M | m を追加します。 例えば、バッファー・サイズ 4 MB で db2trc を開始する場合は、次のようにします。
トレース・バッファー・サイズのデフォルト値や最大値は、オペレーティング・システムによって異なります。 最小バッファー・サイズは 1 MB です。 なお、バッファー・サイズは 2 の累乗でなければなりません。db2trc on -l 4m
- -i [bufferSize]
- このオプションは、トレース・バッファーのサイズと振る舞いを指定します。 -i は、初期追跡レコードが保持されることを指定します (つまり、バッファーが負荷超過になると、それ以上のレコードはバッファーに書き込まれません)。 バッファーのサイズはバイト単位またはメガバイト単位で指定できます。 メガバイト単位でバッファー・サイズを指定する場合は、バッファー・サイズに文字 M | m を追加します。
- -f filename
- ファイルを追跡する場合は、完全修飾ファイル名を指定しなければなりません。また、-fオプションを指定して-lまたは-i を使う場合、それらのバッファー・サイズ 値によってディスクのファイルサイズが制限されます。 -l は、最後の追跡レコードを保存し、ファイルで折り返すことができます。 -i初期追跡レコードを保持し、ファイルサイズの制限に達すると追跡を停止します。 ファイルサイズをメガバイトで指定する場合、-i/または-l buffersize値の後、文字M | mを追加してください。ギガバイトの場合、文字 G|gを追加してください。
- -cli
- CLI/ODBC ドライバーと CLI アプリケーションをトレースします。
- -clitracelevel loglevel
- このパラメーターは、CLI/ODBC ドライバーと CLI アプリケーションに関して CLI トレースにダンプされる情報のロギング・レベルを制御します。 このオプションは、トレースがオンのときに -cli を指定しない場合には無視されます。 loglevel に設定できる値は [0-3] で、各値は次のように定義されています。
- 0 - キャプチャーされたすべての情報をログに記録します (現在のデフォルト動作)。
- 1 - アプリケーションによって提供されるバインドイン・データはログに記録しません。 バインドイン・データとは、SQLBindParameter()、SQLBindCol()、SQLExtendedBind() などの API 呼び出しによって、rgbValue アプリケーション・データ・ポインターを介してアプリケーションからクライアントに提供されるデータのことです。
- 2 - アプリケーションに返されるバインドアウト・データはログに記録しません。 バインドアウト・データとは、SQLBindParameter()、SQLBindCol()、SQLExtendedBind() などの API 呼び出しを使用して設定されたアプリケーション・データ・ポインターによって、rgbValue アプリケーション・データ・ポインターを介してクライアントからアプリケーションに返されるデータのことです。
- 3 - アプリケーションによって提供されるバインドイン・データも、アプリケーションに返されるバインドアウト・データもログに記録しません。
このオプションは、トレースがオンのときに -cli を指定しない場合には適用されません。db2trc on -cli -clitracelevel 1 -f dumpFile db2trc off db2trc fmt -cli dumpFile clitrcfile.txt
- -pattern
- このパラメーターを使用すると、ユーザーは検索パターンに基づいて CLI トレースに情報を記録できます。 このオプションには、;(セミコロン) 文字で区切ることによって複数の検索パターンを指定できます。 複数の検索パターンは、二重引用符で囲む必要があります。 セミコロン文字でパターンを区切ることによって、最大で 10 個の検索パターン (合わせて 255 文字以下) を指定できます。 検索パターンの数が 10 を超える場合、
最初の 10 の検索パターンのみが考慮されて、その他のものは無視されます。 255 文字を超える場合、該当するエラーが戻されて、アクションは実行されません。 このオプションを指定できるのは、生成されたダンプ・ファイルから CLI トレースをフォーマット設定する間ではなく、ダンプ・ファイルの収集中のみです。 また検索パターンを SELECT%table1 という形式にすることもできます。 この場合、SELECT キーワードに任意の文字が続いてさらに table1 キーワードが続くパターンを検索します。 以下の例は、 -pattern パラメーターの使用法を示しています。
- 例 1
以下のコマンドは、「tab1」パターンが含まれるすべてのステートメントを検索します。 「tab1」パターンと一致するステートメント・ハンドル上のすべての情報がダンプ・ファイルに記録されます。
db2trc on -cli -pattern tab1 -f file1.dmp
- 例 2
以下のコマンドは、「tabl」パターンまたは「tab2」パターンが含まれるすべてのステートメントを検索します。 「tab1」パターンまたは「tab2」パターンと一致するステートメント・ハンドル上のすべての情報がダンプ・ファイルに記録されます。 検索は、作成または実行される SQL すべてに関して行われ、最初に一致するパターンがログに記録されます。
db2trc on -cli -pattern "tab1;tab2" -f file1.dmp
- 例 3以下のコマンドは、SELECT に「tab1」が続くパターンが含まれるすべてのステートメントを検索します。 「SELECT」キーワードに任意の文字が続いてさらに「tab1」キーワードが続くパターンと一致するステートメント・ハンドル上のすべての情報がダンプ・ファイルに記録されます。
db2trc on -cli -pattern SELECT%tab1 -f file1.dmp
- 例 1
- -dumpstmt
- Db2 トレースを有効にする前に、 CLI ドライバーによって割り振られたすべてのステートメント・ハンドルの詳細を取得します。 詳細には、 Db2 トレースを使用可能にする前に割り振られた、割り振られたステートメント・ハンドルのすべての準備済み SQL ステートメントが含まれます。 -dumpstmt オプションは、-cli オプションの指定の有無にかかわらず指定できます。 -dumpstmtオプションが-mオプションとともに指定された場合、-dumpstmtオプションを有効にするには、マスクにコンポーネント191(
*.*.191.*.*
)を含めなければなりません。-dumpstmt (ダンプ・ステートメント) オプションを使用して Db2 トレースを有効にするには、 CLI および ODBC アプリケーションがスレッド・セーフであり、ご使用のオペレーティング・システムがマルチスレッド化をサポートしている必要があります。 -dumpstmt オプションは、 CLI ドライバーを使用するアプリケーションをトレースします。
- -errors
- 関数の出口でエラーおよびゼロ以外の戻りコードのみをトレースします。 このオプションは、 -debug オプションまたは -perfcount オプションと一緒に指定できません。
- -lc
- CF サーバーまたは CF クライアントの有効な CF トレース・コンポーネントおよびトレース・レベルをすべてリストします。
- -id [cf-id]
- db2nodes.cfg ファイルで指定されている CF サーバー ID。 デフォルトでは、すべての CF サーバーに対して操作が実行されます。 ただし、このオプションが指定されている場合は、指定された CF サーバーのみが影響を受けます。
- -trccom
- CLI/ODBC トレースに、ネットワーク要求を表示します。
- -stoptrc [-sqlcodes]
- -SQL コード に指定されたいずれかの SQLCODE がヒットすると、追跡を停止します。-sqlcodes は、符号付き整数として指定する必要がある最大 20 個の SQLCODE のコンマ区切りリストです。
- change
- 有効な追跡オプションを変更するには、change オプションを使ってください。 パラメーターのリストについては、「 共有トレース・オプション 」セクションを参照してください。 エレメント ID「mask_option」への相互参照
- Shared trace-options
- on と changeに共有される共通追跡オプション。
- -m マスク
- 収集またはフォーマット設定されるデータの量を減らします。 トレース・マスクの形式は、types.products.components.functions.categories です。
マスクの値は、 IBM サポートによって提供されます。
マスクは 5 つの部分 (トレース・レコードのタイプ、製品、コンポーネント、関数、関数のカテゴリー) で構成されます。 各部分は、コンマ区切りのリスト、ハイフン区切りの範囲、または単一の項目で構成できます。 何とでも一致するアスタリスク (*) を使用できます。 フィールド値は、その名前または対応する番号で指定できます。 部分名 products、components、または functions から成る簡易書式のマスクを使用できます。 例:
-m "entry,exit.*.SQLO,SQLE.*.*"
マスクを
"*.*.*.*.*"
に設定することは、マスクが未指定であることと同じです。Db2 pureScale® 環境では、マスクが過負荷になっているため、 CF サーバー、 CF クライアント、またはその両方のトレースを有効にすることができます。 マスクは、CF を扱う場合とは幾分異なる方法で使用されます。
マスクの値は、-lc オプションで見つけられます。 CF サーバーおよび CF クライアントの場合、トレース・マスク部分には以下の意味があります。- types は常に * です。
- products は CF または CFCLI のいずれかです (大/小文字は区別されません)。
- components は、 -lc フラグを使用してリストできる 1 つ以上の CF サーバーまたは CF クライアント・コンポーネントの任意の組み合わせです。
- functions は常に * です。これは、 CF がこの機能をサポートしていないためです。
- categories は、 -lc フラグを使用してリストできる 1 つ以上の CF サーバーまたは CF クライアントのトレース・レベルの任意の組み合わせです。
-m "*.CF.svr_list.*.CF_TRACE_ERROR,CF_TRACE_ALL"
- -p pid [.tid]
- 指定したプロセス ID (pid) およびスレッド ID (tid) に対してのみトレース機能を有効にします。 tid を指定する場合は、必ずピリオド (.) を含めてください。 1 つのプロセス ID に対して複数のスレッド ID を指定できます。 1 つの pid において複数の tids を区切るには、ピリオドを使用します。 コンマで、pid tid のそれぞれのペアを区切ります。 最大 64 個の tids を 1 つの pid とペアにできます。例えば、プロセス 10、20、および 30 に対してトレースを有効にする場合は、次のような構文を使用します。
プロセス 100 のスレッド 33 とプロセス 200 のスレッド 66 に対してのみトレースを有効にする場合は、次のような構文を使用します。db2trc on -p 10,20,30
プロセス 77 のスレッド 1、2、3、4 と、プロセス 88 のスレッド 5、6、7、8 でトレースを有効にする場合は、次の構文を使用します。db2trc on -p 100.33,200.66
db2trc on -p 77.1.2.3.4,88.5.6.7.8
- -c cpid
- この比較プロセスのみをトレースまたはフォーマットします。
- -rc returnCode
- returnCode をシステム・エラーとして扱います。 returnCode を符号付き整数として指定する必要があります。
- -e maxSysErrors
- maxSysErrors システム・エラーの発生後にトレースを停止します。
- -t
- タイム・スタンプを組み込みます。
- -debug
- これは、 IBM サポートがデバッグ目的で使用する内部オプションです。 この使用は推奨されていません。
- -perfcount
- このモードは、各関数が呼び出された回数の合計を記録します。
- -t
- このオプションは、各関数で費やされた合計時間を記録します。
- -m mask
- このオプションにより、収集またはフォーマットされるデータの量が削減されます。 詳しくは、 共有トレース・オプションの -m オプションの説明を参照してください。
- -edu
- このオプションは、機能呼び出しを記録するときに EDU を区別します。
- info
- 以下は、このパラメーターを使用してリストされる環境情報の例です。
D:\Program Files\IBM\SQLLIB\BIN>db2trc info Marker : @TRACE@ Trace version : 7.0 Platform : NT Build level : s060629 maxBufferSize : 2097152 bytes (2 MB) auxBufferSize : 6291456 bytes (6 MB) allocationCount : 1 DB2TRCD pid : 2384 DB2TRCD64 pid : 0 Trace destination : <shared memory buffer> debug : disabled debug runtime passno : 0 numSuspended : 0 Trace starting time : 2011-03-25-15.03.58.909713-240 Buffer size : 2097152 bytes (2 MB) Allow buffer to wrap : yes Mask : *.*.*.*.* Timestamps : enabled PID.TID mask : all Fixed data mask #1 : all Fixed data mask #2 : all Max system errors : infinite Treat this rc as sys err: none Member mask : none Application ID mask : none Application Handle mask : none
- dump dumpFile
- バッファーに格納されるバイナリー形式のトレース情報をファイルにダンプします。 次のコマンドは、現在のディレクトリの情報を次のdb2trc.dmpファイルに入れます。
このパラメーターでダンプ・ファイル名を指定します。 パスが指定されていない場合、そのバイナリー形式のダンプ・ファイルは現行ディレクトリーに保存されます。db2trc dump db2trc.dmp
- -q
- 静止モード。
- ccfmt destFile
- コード・カバレッジ・トレースをダンプおよびフォーマットします。 ダンプの宛先ファイル名を指定します。
- flow dumpFile destFile
- トレースをバイナリー・ファイルにダンプした後、読みやすいテキスト・ファイルにフォーマットします。 このflowオプションを使用して、プロセスまたはスレッドでソートされたレコードをフォーマットします。 ダンプ・ファイルの名前および生成される宛先ファイルの名前を指定します。 以下に例を示します。
db2trc flow db2trc.dmp db2trc.flw
- -x firstRecord [-lastRecord]
- レコード番号 firstRecord から lastRecord までのみを表示します。
- -data
- すべてのトレース・レコード・データをフローに組み込みます。
- -t
- 使用可能な場合に、タイム・スタンプ (秒:ナノ秒の形式) を組み込みます。
- -wc
- 使用可能な場合に、壁時計タイム・スタンプを含めます。 このオプションを使うには、タイム・スタンプのキャプチャーを含む -t オプションも指定して、追跡をオンに設置しなければなりません。 使用例については、例 1 を参照してください。
- -mf
- 各フローごとに個別の宛先ファイルを生成します。
- -rds
- 使用可能な場合に、RDS オペレーターの情報を組み込みます。
- format dumpFile destFile
- トレースをバイナリー・ファイルにダンプした後、読みやすいテキスト・ファイルにフォーマットします。 レコードを日時順にフォーマットするには、format オプションを使用します。
- -x firstRecord [-lastRecord]
- レコード番号 firstRecord から lastRecord までのみを表示します。
- -r
- 逆順で出力します。
- -xml
- XML での構文解析が可能な形式でデータを出力します。
- -c
- 通信バッファーをフォーマットします。
- -cli
- トレース・バイナリー・ファイルをフォーマットして、 CLI ドライバー機能と CLI アプリケーション・バッファーを読み取り可能なテキスト・ファイルに表示します。 destFile 変数は以下のいずれかのオブジェクトにすることができます。
- 作成されるフォーマット済みトレース・ファイルの名前。
db2trc fmt –cli dumpFile clitrcfile.txt
- フォーマット済みトレース・ファイルのパス名付き名前。
db2trc fmt –cli dumpFile /TMP/clitrcfile.txt
- ユーザーが書き込み権限を持っている既存のディレクトリー。
db2trc fmt –cli dumpFile /TMP
destFile ディレクトリーの追跡ファイルの名前は、p<pid>t<tid>.cliから構成されます。 destFile値と同じ名前のディレクトリーがあり、そのディレクトリーに対する書き込み権限がユーザーにない場合、エラーが返されます。[processor_ticks.milliseconds - mm/dd/yyyy hour:min:sec.milliseconds]
db2trc コマンドを使用して生成された CLI トレース・ファイルには、db2 トレース・レコード番号が含まれています。 CLI トレース内の ODBC API のレコード番号は、生成されたフロー・ファイルおよびフォーマット・ファイルに存在するこれらの API のレコード番号と同じです。
- 作成されるフォーマット済みトレース・ファイルの名前。
- -ncf
- コンポーネントのカスタム・フォーマットを使用しません。
- -errors
- 関数の出口でエラーおよびゼロ以外の戻りコードのみをトレースします。
- -global
- リモート・ホストに対しても db2trc を実行することを指定します。 このオプションは、Db2 バージョン 9.7 フィックスパック 4 およびそれ以降のフィックスパックでは非推奨です。
- -host hostname
- 指定したホストのみに対して db2trc を実行することを指定します。 このパラメーターを指定しない場合、コマンドはローカル・ホストに対して発行されます。 複数のホストを指定する場合、すべてのホスト名が有効でないと、コマンドを完了できません。
- -sdir shared directory path
- -f および dump パラメーターに適用できるファイルを保存するために db2trc コマンドが使用する共有ディレクトリーを指定します。
- perffmt dumpFile destFile
- パフォーマンス・カウンター・データを含むダンプ・ファイルを、読みやすいテキストにフォーマットします。
- formattedFlow| fflw dumpFile destFile
- バイナリー・ファイルにダンプされたトレースを判読可能ファイルにフォーマット設定します。 このファイルのデータは、PIDとTID によってグループ化されるのではなく、日時順にソートされます。-flow パラメーターを指定した場合に発生します。
- -x firstRecord [-lastRecord]
- レコード番号 firstRecord から lastRecord までを表示します。
- -data
- すべてのトレース・レコード・データをフローに組み込みます。
- -t
- 使用可能な場合に、sec:nsec 形式のタイム・スタンプを含めます。
- -wc
- 使用可能な場合に、壁時計タイム・スタンプを含めます。 このパラメーターを使用するには、タイム・スタンプをキャプチャーする -t オプションを一緒に指定することでトレースをオンにする必要があります。
- -rds
- 使用可能な場合に、リレーショナル・データ・サービス (RDS) 演算子の情報を含めます。
- perfrep dumpFiledestFile
- バイナリー・ファイルにダンプされるトレースを、パフォーマンス報告書テキスト・ファイルにフォーマット設定します。
- -g
- 出力を、トレースのメンバー (ノード) 番号、PID、TID の組み合わせでグループ化します。
- -sort count|timespent|timeelapsed
- 次のいずれかの方法で、出力をソートします。
- count
- 各関数の呼び出しの数。
- timespent
- 各関数で費やされた時間。 これはデフォルト値です。
- timeelapsed
- 各関数で費やされた経過時間。
- -order asc|ascending|desc|descending
- 以下のように、出力データのソート順を指定します。
- asc | ascending
- 昇順。
- desc | descending
- 降順。 これがデフォルトです。
- print -stack recordID flowFile
- 指定されたフロー・ファイルの指定レコード ID における、すべてのスタック・フレームのバックトレースを出力します。 詳しくは、例 5 を参照してください。
- clear
- トレース・バッファーの内容を、特に特定のデータベースに接続する直前にクリアします。 このオプションは、収集された情報の量を減らすために使用します。このオプションを指定すると、累積した不要情報のバッファーがクリアされた後に、対象のデータベースへの接続が確立されます。
- stop
- この collection オプションは、要求時にトレースを停止します。 すべてのプロセスはトレースを中断しますが、トレース・バッファーの内容は後でダンプできるように保持されます。 このアクションは、追跡機能を完全に使用不可にする off オプションとは対照的です。
- off
- トレース機能を無効にします。 トレースをファイルにダンプした後、次のように入力してトレース機能を無効にします。
db2trc off
- -id [cf-id]
- db2nodes.cfg ファイルで指定されている CF サーバー ID。 デフォルトでは、すべての CF サーバーに対して操作が実行されます。 ただし、このオプションが指定されている場合は、指定された CF サーバーだけが影響を受けます。
- -u
- ほとんどのコマンド行オプションに関する追加情報を提供します。 コマンド行の項目の一般的な形式については、下記の『使用上の注意』に示されています。 以下は、DAS インスタンスの dump コマンドに関する詳しい情報を入手する例です。
db2trc das dump -u
例
- Example 1
- 壁掛け時計のタイムスタンプが含まれている追跡をキャプチャするには、追跡をオンにするときに -tオプションを指定する必要があります。また、壁掛け時計のタイムスタンプを読み取り可能なテキストファイルに出力する flowオプションの-t -wcオプションを指定する必要があります。 以下は実行できるステップの例です。
- 以下のコマンドを実行し、トレースを ON にして、タイム・スタンプ情報をキャプチャーし、ダンプ・ファイル名を指定します。
db2trc on -t -f db2trc.dmp
- トレース期間の終了後、以下のコマンドを実行してトレースを OFF にします。
db2trc off
- バイナリー・ダンプ (
.dmp
) ファイルを読み取り可能なテキスト・ファイル(例えば、db2trc.flw) にフォーマットするには、次のコマンドを実行してください。db2trc flow -t -wc db2trc.dmp db2trc.flw
以下はフォーマットの完了時に表示される出力の例です。Total number of trace records : 3349 Trace truncated : NO Trace wrapped : NO Number of trace records formatted : 43 (pid: 5414 tid 182967198368 node: 0) Number of trace records formatted : 2690 (pid: 29615 tid 182960067008 node: 0) Number of trace records formatted : 118 (pid: 5394 tid 183102335328 node: 0) Number of trace records formatted : 498 (pid: 29616 tid 182965078816 node: -1)
- 読み取り可能テキスト・ファイル db2trc.flwの内容を表示するには、次のコマンドを実行してください。
more db2trc.flw
以下は、壁時計タイム・スタンプ情報を含む読み取り可能テキスト・ファイルの内容の読み取り時に表示される出力の例です。pid = 5414 tid = 182967198368 node = 0 1 0.000000000 clp_bp_con data [probe 21] 2009-06-16-11.02.32.38407400 2 0.000038000 | sqlossig entry 2009-06-16-11.02.32.38411200 3 0.000050000 | sqlossig exit 2009-06-16-11.02.32.38412400 4 0.000057000 | sqlorque2 entry 2009-06-16-11.02.32.38413100 5 0.000062000 | | sqlogmblkEx entry 2009-06-16-11.02.32.38413600 6 0.000070000 | | | sqloGetPrivatePoolHandle entry 2009-06-16-11.02.32.38414400 7 0.000077000 | | | sqloGetPrivatePoolHandle exit 2009-06-16-11.02.32.38415100 8 0.000088000 | | sqlogmblkEx mbt [Marker:PD_OSS_ALLOCATED_MEMORY] 2009-06-16-11.02.32.38416200 9 0.000092000 | | sqlogmblkEx exit 2009-06-16-11.02.32.38416600 10 0.000094000 | | sqlorqueInternal entry 2009-06-16-11.02.32.38416800 11 0.000096000 | | | sqloSetAlarmApp entry 2009-06-16-11.02.32.38417000 12 0.000099000 | | | | sqloSigMask entry 2009-06-16-11.02.32.38417300 13 0.000101000 | | | | sqloSigMask exit 2009-06-16-11.02.32.38417500 14 0.000103000 | | | | sqlohsig entry 2009-06-16-11.02.32.38417700 15 0.000105000 | | | | sqlohsig exit 2009-06-16-11.02.32.38417900 16 0.000108000 | | | sqloSetAlarmApp exit 2009-06-16-11.02.32.38418200 2825 5.000561000 | | | sqloClearAlarmApp entry 2009-06-16-11.02.37.38463500 2826 5.000576000 | | | | sqloSigMask entry 2009-06-16-11.02.37.38465000 2827 5.000579000 | | | | sqloSigMask exit 2009-06-16-11.02.37.38465300 2828 5.000582000 | | | | sqlohsig entry 2009-06-16-11.02.37.38465600 2829 5.000585000 | | | | sqlohsig exit 2009-06-16-11.02.37.38465900 2830 5.000587000 | | | sqloClearAlarmApp exit 2009-06-16-11.02.37.38466100 2831 5.000589000 | | sqlorqueInternal exit [rc = 0x870F00B9 = -2029059911 = SQLO_SEM_TIMEOUT] 2009-06-16... 2832 5.000592000 | | sqlofmblkEx entry 2009-06-16-11.02.37.38466600 2833 5.000597000 | | sqlofmblkEx mbt [Marker:PD_OSS_FREED_MEMORY] 2009-06-16-11.02.37.38467100 2834 5.000599000 | | sqlofmblkEx exit 2009-06-16-11.02.37.38467300 2835 5.000601000 | sqlorque2 exit [rc = 0x870F00B9 = -2029059911 = SQLO_SEM_TIMEOUT] 2009-06-16-11.02.37.38467500 2836 5.000614000 clp_bp_con data [probe 21] 2009-06-16-11.02.37.38468800 2837 5.000617000 | sqlossig entry 2009-06-16-11.02.37.38469100 2838 5.000620000 | sqlossig exit 2009-06-16-11.02.37.38469400 2839 5.000623000 | sqlorque2 entry 2009-06-16-11.02.37.38469700 2840 5.000626000 | | sqlogmblkEx entry 2009-06-16-11.02.37.38470000 2841 5.000628000 | | | sqloGetPrivatePoolHandle entry 2009-06-16-11.02.37.38470200 2842 5.000631000 | | | sqloGetPrivatePoolHandle exit 2009-06-16-11.02.37.38470500 2843 5.000636000 | | sqlogmblkEx mbt [Marker:PD_OSS_ALLOCATED_MEMORY] 2009-06-16-11.02.37.38471000 2844 5.000638000 | | sqlogmblkEx exit 2009-06-16-11.02.37.38471200 2845 5.000640000 | | sqlorqueInternal entry 2009-06-16-11.02.37.38471400 2846 5.000643000 | | | sqloSetAlarmApp entry 2009-06-16-11.02.37.38471700 2847 5.000646000 | | | | sqloSigMask entry 2009-06-16-11.02.37.38472000 2848 5.000647000 | | | | sqloSigMask exit 2009-06-16-11.02.37.38472100 2849 5.000649000 | | | | sqlohsig entry 2009-06-16-11.02.37.38472300 2850 5.000651000 | | | | sqlohsig exit 2009-06-16-11.02.37.38472500 2851 5.000654000 | | | sqloSetAlarmApp exit 2009-06-16-11.02.37.38472800
- 以下のコマンドを実行し、トレースを ON にして、タイム・スタンプ情報をキャプチャーし、ダンプ・ファイル名を指定します。
- Example 2
- 以下は -member トレース・マスクの使用例です
db2trc on -member n1[,n2,n3,n64]
このコマンドは、トレースするデータベース・メンバーつまりパーティションを指定する場合に使用します。注: 整数でなければなりません。 複数のメンバーを指定する場合、それぞれのメンバーをコンマで区切る必要があります。 最大 64 メンバーまで指定できます。db2trc chg -member n1[,n2,n3,n64]
このコマンドは、指定したデータベース・メンバーつまりパーティションのメンバー・マスクを変更する場合に使用します。
db2trc stop -member n1[,n2,n3,n64]
このコマンドは、メンバー・マスクからメンバーを削除する場合に使用します。 メンバー・マスクから最後のメンバーが削除されると、トレースは完全に停止します。これは、db2trc stop コマンドを実行した場合と同じ効果があります。- このコマンドで発行されるメンバーの番号は、現行のメンバー・マスクに存在していなければなりません。 db2trc info を実行すると、現行のメンバー・マスクが表示されます。
- db2trc on コマンドを -member オプションを指定せずに実行した場合、メンバー・マスクにはメンバーが何もありません。 これは、すべてのメンバーがトレースされることを意味します。
- このコマンドで現行ホストのすべてのメンバー (db2nodes.cfg ファイルで定義される) を指定すると、db2trc stop を実行した場合と同じ効果があります。 この場合、 -member オプションを指定せずに db2trc stop を実行すると、そのホスト上のすべてのメンバーのトレースが完全に停止します。
db2trc off -member n1[,n2,n3,n64]
このコマンドは、メンバー・マスクからメンバーを削除する場合に使用します。 メンバー・マスクから最後のメンバーが削除されると、トレースはオフになります。これは、db2trc off を実行した場合と同じ効果があります。- このコマンドで発行されるメンバーの番号は、現行のメンバー・マスクに存在していなければなりません。 db2trc info を実行すると、現行のメンバー・マスクが表示されます)。
- db2trc on コマンドを -member オプションを指定せずに実行した場合、メンバー・マスクにはメンバーが何もありません。 これは、すべてのメンバーがトレースされることを意味します。
- db2nodes.cfg ファイルで定義された現行ホスト内のすべてのメンバーをこのコマンドで指定すると、db2trc off と同じ効果があります。 -member オプションを指定せずに db2trc off を実行すると、そのホストでトレースがオフになります。
db2trc flw -member n1[,n2,n3,n64]
とdb2trc fmt -member n1[,n2,n3,n64]
このコマンドは、フォーマット設定されるトレースに含めるメンバーを指定する場合に使用します。
- Example 3
- 以下は、db2nodes.cfg を以下のデータとして定義した-member 追跡マスクの使用例です。
0 host1 0 1 host1 1 2 host1 2 3 host2 0 4 host3 0
db2trc on[ chg] -member 1,2,3
-member を実行する場合、-member で指定したメンバーの番号は関連したホスト名にマップされ、rah (または db2_all) コマンドにより、関連したホストに対して実行されます。 この例では、db2trc -member 1,2 は host1 に対して実行され、db2trc -member 3 は host2 に対して実行されます。
db2trc on -host host1,host2
db2trc on は host1 と host2 の両方に対して実行されます
db2trc on -member all
db2trc on は host1、host2、および host3 に対して実行されます
- Example 4
- -appidパラメーターと-apphdl パラメーターの使用例は次の通りです。
db2trc on -appid appid1,appid2
このコマンドは、特定のアプリケーション ID のトレースをオンにします。 -appid パラメーターを指定した db2trc コマンドは、最大 12 個のアプリケーション ID をサポートします。
db2trc chg -appid appid1,appid2
このコマンドは、特定のアプリケーション ID を変更またはリセットします。 リセットするには、
db2trc chg -appid none
コマンドを実行します。 このコマンドは、マスクに含まれるすべてのアプリケーション ID を削除します。db2trc on -apphdl apphdl1,apphdl2,apphdl3
このコマンドは、特定のアプリケーション・ハンドルのトレースをオンにします。 このコマンドは、最大 16 のアプリケーション・ハンドルまでサポートします。
db2trc chg -apphdl apphdl1,apphdl2,apphdl3
このコマンドは、特定のアプリケーション・ハンドルを変更またはリセットします。 リセットするには、
db2trc chg -apphdl none
コマンドを実行します。 このコマンドは、マスクに含まれるすべてのアプリケーション・ハンドルを削除します。
- Example 5
- サンプルのフロー・ファイル
test.flw
を以下の例に示します。pid = 1608 tid = 47604608002368 node = 0 1 sqlossig entry [eduid 1 eduname db2sysc] 2 sqlossig exit [rc = 0x840F0001 = -2079391743 = SQLO_ACCD] 3 sqkfFastCommManager::ResourceSelfTuning entry [eduid 1 eduname db2sysc] 4 | sqlogmt entry [eduid 1 eduname db2sysc] 5 | sqlogmt exit 6 sqkfFastCommManager::ResourceSelfTuning exit 7 sqkfFastCommManager::CollectResourceUsageStats entry [eduid 1 eduname db2sysc] 8 | sqlogmt entry [eduid 1 eduname db2sysc] 9 | sqlogmt exit 10 sqkfFastCommMandager::CollectResourceUsageStats exit 11 sqkfFastCommManager::UpdateMemoryConsumptionStats entry [eduid 1 eduname db2sysc] 12 sqkfFastCommManager::UpdateMemoryConsumptionStats exit 13 sqleSyscUpdateDynamicVars entry [eduid 1 eduname db2sysc] 14 | sqloGetSysMonSetting entry [eduid 1 eduname db2sysc] 15 | | sqloGetEnvUnCached entry [eduid 1 eduname db2sysc] 16 | | | EnvPrfOpen entry [eduid 1 eduname db2sysc] 17 | | | | EnvKeyName entry [eduid 1 eduname db2sysc] 19 | | | | | | sqloxltc_app entry [eduid 1 eduname db2sysc] 20 | | | | | | sqloxltc_app exit 21 | | | | | sqloGetUserAttribByName data [probe 770] 22 | | | | | sqloGetUserAttribByName data [probe 820] 23 | | | | | | sqloxult_app entry [eduid 1 eduname db2sysc] 24 | | | | | | sqloxult_app exit 25 | | | | | sqloGetUserAttribByName exit 26 | | | | EnvKeyName exit 27 | | | EnvPrfOpen exit 28 | | sqloGetEnvUnCached exit 29 | sqloGetSysMonSetting exit 30 sqleSyscUpdateDynamicVars exit
test.flw
ファイルから5行目のすべてのスタックフレームのバック追跡を出力するには、次のコマンドを実行してください。
またはdb2trc print -stack 5 test.flw
db2trc print -s 5 test.flw
以下は、表示される出力です。pid = 1608 tid = 47604608002368 node = 0 3 sqkfFastCommManager::ResourceSelfTuning entry [eduid 1 eduname db2sysc] 4 | sqlogmt entry [eduid 1 eduname db2sysc] 5 | sqlogmt exit
行18はtest.flw
ファイルにないことを注意してください。 指定されたレコード ID が存在しない場合は、以下のようにエラー・メッセージが表示されます。$ db2trc print -stack 18 test.flw ERROR: Unable to find the Record ID 18 . Exiting.
CF および CFCLI 使用例
- Example 6
xport_common (CF_TRACE_WARNING)
、srv_init (CF_TRACE_PATH|CF_TRACE_ERROR)
、およびsrv_common (CF_TRACE_ALL)
コンポーネントのトレースをオンにするには、次のコマンドを実行します。db2trc cf on -m "*.CF.xport_common,srv_init,srv_common.*.CF_TRACE_WARNING,0x09,CF_TRACE_ALL"
- Example 7
- すべての CF クライアント・コンポーネントに対して CF_TRACE_ALL レベルでトレースをオンにするには、次のコマンドを実行します。
db2trc cfcli on
- Example 8
srv_list (CF_TRACE_ERROR)
コンポーネントとその他のすべてのコンポーネントに対してCF_TRACE_ALL レベルで追跡をオンにするには、次のコマンドを実行してください。db2trc cf on -m "*.CF.srv_list.*.CF_TRACE_ERROR,CF_TRACE_ALL"
- Example 9
- CF_TRACE_WARNING または CF_TRACE_DEBUG レベルのすべての CF コンポーネントに対してトレースをオンにするには、次のコマンドを実行します。
db2trc cf on -m "*.CF.*.*.CF_TRACE_WARNING|CF_TRACE_DEBUG"
- Example 10
- db2nodes.cfg ファイルにリストされているすべての CF サーバー、および CF_TRACE_ALL レベルのすべての CF コンポーネントに対してトレースをオンにするには、次のコマンドを実行します。
db2trc cf on
- Example 11
- db2nodes.cfg ファイルにリストされている CF サーバー 129、および CF_TRACE_ALL レベルのすべての CF コンポーネントについてのみトレースをオンにするには、次のコマンドを実行します。
db2trc cf on -id 129
- Example 12
- 以下の例は、perfrep パラメーターの使用法を示しています。
- 次のコマンドを発行して、トレースをオンにします。
db2trc on -t
- 例えば、次のコマンドを発行して Db2 操作を実行します。
db2start
- トレース情報をバイナリー・ファイルにダンプするには、以下のコマンドを発行します。
db2trc dump db2trc.dmp
- バイナリー・ファイルをメンバー番号、PID、TID でグループ化して、読みやすい出力にフォーマット設定するには、以下のコマンドを発行します。
db2trc perfrep -g db2trc.dmp db2trc.perfrep
出力例を以下に示します。Node : 0 , PID : 12648456 , TID : 258 nCalls TotalElapsed AvgElapsed TotalSpent AvgSpent FunctionName 2 22.163451643 11.081725821 22.163444161 11.081722081 sqlorqueInternal 3 0.097682328 0.032560776 0.097682328 0.032560776 OSSHLibrary::load 1 0.015628456 0.015628456 0.015579146 0.015579146 sqlnlsgetcpcc 1 0.015929874 0.015929874 0.010516227 0.010516227 sqloRunInstance 1 0.007650045 0.007650045 0.006686877 0.006686877 sqloexec 1 0.004468380 0.004468380 0.004468380 0.004468380 sqlosearchpath 1 0.004469429 0.004469429 0.002867957 0.002867957 sqloWatchDogSetup 2 0.049929905 0.024964952 0.002643447 0.001321724 pdLogInternal 10 0.002660025 0.000266002 0.002576667 0.000257667 sqloGetUserAttribByName 3 0.002527244 0.000842415 0.002504231 0.000834744 sqloopenp 2 0.001962144 0.000981072 0.001932671 0.000966335 sqloGetUserAttribById 5 0.001829002 0.000365800 0.001344719 0.000268944 GlobalReg::GlobalReg 15 0.001569204 0.000104614 0.001109852 0.000073990 sqlogmblkEx 1 0.044276370 0.044276370 0.000982115 0.000982115 ossGetCPUInfo 1 22.178500518 22.178500518 0.000686105 0.000686105 sqleWatchDog 3 0.000667789 0.000222596 0.000667789 0.000222596 sqloAddOneReservedHandle 40 0.000720231 0.000018006 0.000604822 0.000015121 GlobalReg::UnpackRecord 5 0.002412400 0.000482480 0.000589444 0.000117889 GenRegBin::GetNext [....] Node : 0 , PID : 11731144 , TID : 2 nCalls TotalElapsed AvgElapsed TotalSpent AvgSpent FunctionName 1 18.300280961 18.300280961 18.300280961 18.300280961 sqloAlarmThreadEntry 1 18.301955934 18.301955934 0.000651340 0.000651340 sqloEDUEntry 10 0.000346784 0.000034678 0.000216876 0.000021688 sqlogmblkEx 1 0.000475853 0.000475853 0.000161166 0.000161166 sqlo_create_init_EDU_data 10 0.000157996 0.000015800 0.000140807 0.000014081 sqlofmblkEx 1 0.000178087 0.000178087 0.000124753 0.000124753 sqloGetShrEDUWaitElem 1 0.000129908 0.000129908 0.000081576 0.000081576 SMemBasePool::getNewChunkSubgroup 1 0.000200591 0.000200591 0.000047364 0.000047364 sqlo_destroy_EDU_data 1 0.000045839 0.000045839 0.000045839 0.000045839 sqlo_waitlist::post 1 0.000031140 0.000031140 0.000024636 0.000024636 SMemSet::getChunksFromTree 1 0.000033143 0.000033143 0.000018288 0.000018288 sqloFreeShrEDUWaitElem 2 0.000016570 0.000008285 0.000016570 0.000008285 sqloMemProtEDU_init 2 0.000013807 0.000006904 0.000013807 0.000006904 SqloMemController::updateCachedMemory 1 0.000059408 0.000059408 0.000013568 0.000013568 sqloPostEDUWaitPost 1 0.000017188 0.000017188 0.000011827 0.000011827 SMemSet::returnContiguousChunks 2 0.000011225 0.000005613 0.000011225 0.000005613 sqlogmt2 [....]
- 次のコマンドを発行して、トレースをオンにします。
- Example 13
- 以下の例は、formattedFlow パラメーターの使用法を示しています。
- 次のコマンドを発行して、トレースをオンにします。
db2trc on -t
- 例えば、次のコマンドを発行して Db2 操作を実行します。
db2start
- トレース情報をバイナリー・ファイルにダンプするには、以下のコマンドを発行します。
db2trc dump db2trc.dmp
- バイナリー・ファイルを読みやすい報告書にフォーマット設定するには、以下のコマンドを発行します。
db2trc fflw db2trc.dmp db2trc.fflw
出力例を以下に示します。PID-TID EduName Node RecNum Function [...] 12648456-258 db2wdog [ 0] 19735 |||cryptContextInit entry 12648456-258 db2wdog [ 0] 19736 |||cryptContextInit data [probe 10] 12648456-258 db2wdog [ 0] 19737 |||cryptContextInit data [probe 100] 12648456-258 db2wdog [ 0] 19738 |||cryptContextInit exit 12648456-258 db2wdog [ 0] 19739 ||sqloWatchDogSetup data [probe 2] 12648456-258 db2wdog [ 0] 19740 ||sqloWatchDogSetup exit 12648456-258 db2wdog [ 0] 19741 ||sqlogmblkEx entry 12648456-258 db2wdog [ 0] 19742 |||sqloGetPrivatePoolHandle entry 12648456-258 db2wdog [ 0] 19743 |||sqloGetPrivatePoolHandle exit 11731144-258 db2sysc [ 0] 19744 sqloGetEnvInternal entry 11731144-258 db2sysc [ 0] 19745 sqloGetEnvInternal exit [rc = 0x870F0104 = -2029059836 = RC_ENV_NOT_FOUND] 12648456-258 db2wdog [ 0] 19746 ||sqlogmblkEx mbt [Marker:PD_OSS_ALLOCATED_MEMORY] 12648456-258 db2wdog [ 0] 19747 ||sqlogmblkEx exit 11731144-258 db2sysc [ 0] 19748 sqloSystemControllerMain entry 11731144-258 db2sysc [ 0] 19749 |sqloChangeProcessName entry 11731144-258 db2sysc [ 0] 19750 |sqloChangeProcessName data [probe 5] 11731144-258 db2sysc [ 0] 19751 |sqloChangeProcessName exit 11731144-258 db2sysc [ 0] 19752 |sqloGetShrEDUWaitElem entry 11731144-258 db2sysc [ 0] 19753 ||sqlo_waitlist::initialize entry 11731144-258 db2sysc [ 0] 19754 ||sqlo_waitlist::initialize exit 11731144-258 db2sysc [ 0] 19755 ||sqlogmblkEx entry 11731144-258 db2sysc [ 0] 19756 ||sqlogmblkEx mbt [Marker:PD_OSS_ALLOCATED_MEMORY] 11731144-258 db2sysc [ 0] 19757 ||sqlogmblkEx exit 11731144-258 db2sysc [ 0] 19758 |sqloGetShrEDUWaitElem data [probe 10] 11731144-258 db2sysc [ 0] 19759 |sqloGetShrEDUWaitElem data [probe 20] 11731144-258 db2sysc [ 0] 19760 |sqloGetShrEDUWaitElem exit 12648456-258 db2wdog [ 0] 19761 |sqloRunInstance data [probe 2] 12648456-258 db2wdog [ 0] 19762 |sqloRunInstance exit 11731144-258 db2sysc [ 0] 19763 |sqloGetKernelThreadIDFromEDUID entry [eduid 258 eduname db2sysc] [...]
- 次のコマンドを発行して、トレースをオンにします。
使用上の注意
トレースの実行中に db2trc コマンドを何度か発行する必要があります。- トレースをオンにします。このようにすると、Db2 インスタンスが開始された後に、指定したデータの収集とバッファーへの保管が直ちに開始されます
- バッファーをクリアしてからデータベースに接続します
- バイナリー・フォーマットのデータをダンプ・ファイルにダンプします
- トレースをオフにします
- 容易に判読できるテキスト宛先ファイルにダンプ・ファイルをフォーマット設定します
- Db2 インスタンスを停止します
- -l パラメーターを使用して追跡をオンにし、最大追跡バッファー・サイズを設定します。
- Db2 インスタンスを開始します
- トレース・バッファーをクリアします
db2trc on -i 8m -m "*.*.2.*.*" -t
db2start
db2trc clear
db2 connect to sample
db2trc dump dmp
db2trc off
- Collection オプションには、トレースをオンまたはオフにすること、トレース・バッファーのサイズを指定すること、トレース・オプションを指定または変更すること、トレースをダンプすること、トレース・バッファーをクリアすることなどが含まれます。
- Parsing オプションには、フォーマットされたトレース・レコードを古い順、プロセス別、またはスレッド別にソートすることなどが含まれます。
STAGE #1 - COLLECTION
Usage: db2trc [facility] <command> [-u]
[facility]
db2 - Db2 instance (default)
das - Db2 Administration Server instance
<command>
change - Change trace options
clear - Clear the trace buffer
dump - Generate trace dump file
info - Information
off - Disable the trace facility
on - Enable the trace facility
stop - Stop tracing
STAGE #2 - PARSING
Usage: db2trc <command> [-u]
<command>
ccfmt - Dump and format a code coverage trace
flow - Generate control flow diagram
format - Format
info - Information
perffmt - Format a performance trace
For more information add the "-u" option to any of the above commands
ステージ #2 -前のセクションの構文解析で、コマンド ccfmt は、 コード・カバレッジ・追跡をダンプしてフォーマットします。 コード・カバレッジ・トレースは db2trc を拡張したもので、関数の入り口、出口、プローブ・ポイント、およびコード・パスの数を保持します。 コード・カバレッジ・トレースを使用して、頻繁に使用されている関数や、テスト時に触れられていない関数についての統計を収集することができます。データベース・サーバーのトレースを実行する際は、 トレース機能をオフにしてからデータベース・マネージャーを開始することをお勧めします。 これは、UNIX および Linux プラットフォーム上で実行されるデータベース・マネージャーがトレースの変更を即時に認識するための最も信頼性の高い方法です。
cie
(155) のコンポーネント・コードを持つマスクを使用できます。db2trc on -m "*.*.155.*.*"
特定のデータベース・パーティションが問題に関連していることが分かっているなら、そのデータベース・パーティションだけをトレースしてください。 オプション db2trc on -member NN
を使用して、どのデータベース・パーティションがトレースされるか指定できます。
問題が特定のアプリケーション ID に関連している場合は、 db2trc オプション db2trc on -appid
<appID>
を使用して、その特定のアプリケーション ID のみにトレースを制限することができます。