db2trc - トレース・コマンド
db2trc コマンドは、DB2® インスタンスや Db2 Administration Server (DAS) のトレース機能を制御します。 db2trc コマンドが実行されると、トレース機能は操作に関する情報を記録し、その情報を読みやすい形式にフォーマット設定します。
トレース機能を有効にすると (デフォルトでは OFF)、システムのパフォーマンスに影響を与える可能性があります。 したがって、トレース機能は、Db2 技術サポート担当者から指示された場合のみ使用してください。
Db2 のトレースは、繰り返し発生して再現可能な問題を分析するときに特に役立ちます。
時折、Db2 データベース・システムを使用しているときに、エラー・メッセージが出されることがあります。例えば、「トレースを取得して、IBM ソフトウェア・サポートに電話してください」、「トレースをオンにして、トレース・レコードを調べてください」、「問題の説明、SQLCODE、SQLCA の内容 (可能であれば)、およびトレース・ファイル (可能であれば) などの情報を用意して、技術サポート担当者と連絡を取ってください」などのメッセージです。また、IBM ソフトウェア・サポートに問題を報告するときに、ご使用の環境に関する詳しい情報をキャプチャーするためにトレースを実行するように依頼される場合があります。
許可
- SYSADM
- SYSCTRL
- SYSMAINT
- DASADM
必要な接続
なし
コマンド構文
.-db2---. >>-db2trc--+---------------------+--+-------+--+------------------------+--+-----+->< '-| parsing-options |-' +-das---+ '-| collection-options |-' '- -u-' +-cf----+ '-cfcli-' parsing-options |--+-ccfmt--destFile--------------------------------------------------------------------+--| +-flow--dumpFile--destFile--| mask-options |--+------------------+-------------------+ | '-| flow-parsing |-' | +-format--dumpFile--destFile--| mask-options |--+--------------------+---------------+ | '-| format-parsing |-' | +-perffmt--dumpFile--destFile--------------------------------------------------------+ +-formattedFlow--|--fflw--dumpFile--destFile--| mask-options |--+------------------+-+ | '-| fflw-parsing |-' | +-perfrep--dumpFile--destFile--| perfrep-options |-----------------------------------+ +-print--| print-options |-----------------------------------------------------------+ '-info-------------------------------------------------------------------------------' location-options |--+--------------------------------------------------+---------> | (1) | +------- -global--+------------------+-------------+ | '- -host -hostname-' | | .-,--------. | | V | | +- -host----hostname-+-----------------------------+ | .-,------------------------------. | | V | | '- -member--+---member_number--|--member_range-+-+-' '-all--------------------------------' >--+-------------------------------+----------------------------| '- -sdir--shared directory path-' mask-options |--+-----------+--+--------------------------------+------------> '- -m--mask-' | .-,---------------------. | | | .-.--------. | | | V V | | | '- -p------pid----+------+-+---+-' '-.tid-' >--+--------------------------------------------------+---------| | .-,------------------------------. | | V | | '- -member--+---member_number--|--member_range-+-+-' '-all--------------------------------' flow-parsing .---------------------------------------. V | |----+- -x--firstRecord--+-------------+-+-+--------------------| | '--lastRecord-' | +- -data----------------------------+ +- -t-------------------------------+ +- -wc------------------------------+ +- -mf------------------------------+ '- -rds-----------------------------' format-parsing .---------------------------------------. V | |----+- -x--firstRecord--+-------------+-+-+--------------------| | '--lastRecord-' | +- -r-------------------------------+ +- -xml-----------------------------+ +- -c-------------------------------+ +- -cli-----------------------------+ +- -ncf-----------------------------+ '- -errors--------------------------' fflw-parsing .---------------------------------------. V | |----+- -x--firstRecord--+-------------+-+-+--------------------| | '--lastRecord-' | +- -data----------------------------+ +- -t-------------------------------+ +- -wc------------------------------+ '- -rds-----------------------------' perfrep-options |--+-----+--+-------------------------+-------------------------> '- -g-' '- -sort--+-------------+-' +-count-------+ +-timespent---+ '-timeelapsed-' >--+----------------------------------+-------------------------| '- -order--+---------------------+-' +-asc--|--ascending---+ '-desc--|--descending-' collection-options |--+-on--| on-options |--| location-options |--------------------------+--| +-change--+---------------------------------+--| location-options |-+ | '-| trace-options |--+----------+-' | | '- -resume-' | +-dump--dumpFile--+-----+--| location-options |---------------------+ | '- -q-' | +-info--------------------------------------------------------------+ +-clear-------------------------------------------------------------+ +-stop--| location-options |----------------------------------------+ '-off--| location-options |--+----------+---------------------------' '-id--cfid-' on-options |--+------------------------------+-----------------------------> '- -l--+---------------------+-' '-bufferSize--+-----+-' '-M|m-' >--+------------------------------+--+---------------+----------> '- -i--+---------------------+-' '- -f--filename-' '-bufferSize--+-----+-' '-M|m-' >--+----+--+----------+-----------------------------------------> '-lc-' '-id--cfid-' >--+-----------------------------------------------------------------------------+--> '- -global--+----------------------------+--+-------------------------------+-' '- -host--database host name-' '- -sdir--shared directory path-' >--+------------------------------------------------------------+--| +-| trace-options |--+-------+--+------------+--+----------+-+ | '- -cli-' '- -dumpstmt-' '- -errors-' | '-| performance-counter |------------------------------------' trace-options |--+- -m--mask----------------------------------------+---------| | .-,---------------------. | | | .-.--------. | | | V V | | | +- -p------pid----+------+-+---+-------------------+ | '-.tid-' | | .-,------------------------------. | | V | | +- -member--+---member_number--|--member_range-+-+-+ | '-all--------------------------------' | | .-,---------. | | V | | +- -appid------appid---+---------------------------+ | .-,----------. | | V | | +- -apphdl------apphdl---+-------------------------+ +- -c--cpid----------------------------------------+ +- -rc--returnCode---------------------------------+ +- -e--maxSysErrors--------------------------------+ +- -t----------------------------------------------+ '- -debug------------------------------------------' performance-counter |-- -perfcount--+-----+--+-----------+--------------------------| '- -t-' '- -m--mask-' print-options |--+- -stack-+--recordID--flowFile------------------------------| '- -s-----'
- -global パラメーターは使用すべきではありません。 -member all パラメーター・オプションを使用すると、情報をグローバルに取得することができます。
コマンド・パラメーター
- -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
- ファイルにトレースするときに、完全修飾ファイル名を指定する必要があります。-l または -i を -f オプションと一緒に使用する場合は、それぞれの buffersize 値によってディスク上のファイルのサイズが制限されます。 -l は最後のトレース・レコードを保持し、ファイル内での折り返しが許可されます。 -i は初期トレース・レコードを保持し、ファイル・サイズの限界に達するとトレースを停止します。 メガバイト単位でファイル・サイズを指定する場合は、-i および/または -l buffersize に指定する値の後ろに M| m という文字を追加し、ギガバイト単位でファイル・サイズを指定する場合は同じ場所に G | g という文字を追加します。
- -cli
- CLI/ODBC ドライバーと CLI アプリケーションをトレースします。
- -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 サーバーだけが影響を受けます。
- change
- change オプションは、有効になっているトレース・オプションを変更する場合に使用します。
パラメーターのリストについては、下記の『共有トレース・オプション』のセクションを参照してください。
- -resume
- このオプションは、中断されているプロセスの実行を再開する場合に使用します。 -suspend が有効になっていない場合は再開することはできません。
- 共有トレース・オプション
- on と change の間で共有される共通のトレース・オプション。
- -m mask
- 収集またはフォーマット設定されるデータの量を減らします。
トレース・マスクの形式は、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 クライアント・トレース・レベルの任意の組み合わせです。
- -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 サポートによって使用される内部オプションです。 この使用は推奨されていません。
- 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 オプションも指定して、トレースを ON にする必要があります。 使用例については、例 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
- 作成されるフォーマット済みトレース・ファイルの名前。
- -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
- バイナリー・ファイルにダンプされたトレースを判読可能ファイルにフォーマット設定します。
このファイル内のデータは、-flow パラメーターを指定した場合のように PID 別および TID 別にグループ化されるのではなく、日時順にソートされます。
- -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
例
- 例 1
- 壁時計タイム・スタンプを組み込んでトレースをキャプチャーするには、トレースを ON にする際に -t オプションを指定し、-t -wc オプションと flow オプションを指定して壁時計タイム・スタンプを読み取り可能なテキスト・ファイル内に出力しなければなりません。以下は実行できるステップの例です。
- 以下のコマンドを実行し、トレースを 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-11.02.37.38466300 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 にして、タイム・スタンプ情報をキャプチャーし、ダンプ・ファイル名を指定します。
- 例 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]
このコマンドは、フォーマット設定されるトレースに含めるメンバーを指定する場合に使用します。
- db2trc on -member n1[,n2,n3,n64]
- 例 3
- 以下は、-member トレース・マスクを、次のデータのように定義されている db2nodes.cfg で使用する例です。
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 に対して実行されます
- db2trc on[ chg] -member 1,2,3
- 例 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 コマンドを実行します。 このコマンドは、マスクに含まれるすべてのアプリケーション・ハンドルを削除します。
- db2trc on -appid appid1,appid2
- 例 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
test.flw ファイルには、行 18 が存在しない点に注目してください。指定されたレコード ID が存在しない場合は、以下のようにエラー・メッセージが表示されます。$ db2trc print -stack 18 test.flw ERROR: Unable to find the Record ID 18 . Exiting.
CF および CFCLI 使用例
- 例 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"
- このコマンドを実行した後、他のすべてのコンポーネントのトレースが OFF になります。
- 例 7
- すべての CF クライアント・コンポーネントに対して CF_TRACE_ALL レベルでトレースをオンにするには、以下のコマンドを実行します。
db2trc cfcli on
- 例 8
- srv_list (CF_TRACE_ERROR) コンポーネントと他のすべてのコンポーネントに対して CF_TRACE_ALL レベルでトレースをオンにするには、以下のコマンドを実行します。
db2trc cf on -m "*.CF.srv_list.*.CF_TRACE_ERROR,CF_TRACE_ALL"
- 例 9
- すべての CF コンポーネントに対して CF_TRACE_WARNING または CF_TRACE_DEBUG レベルでトレースをオンにするには、以下のコマンドを実行します。
db2trc cf on -m "*.CF.*.*.CF_TRACE_WARNING|CF_TRACE_DEBUG"
- 例 10
- db2nodes.cfg ファイルにリストされているすべての CF サーバーと、すべての CF コンポーネントに対して CF_TRACE_ALL レベルでトレースをオンにするには、以下のコマンドを実行します。
db2trc cf on
- 例 11
- db2nodes.cfg ファイルにリストされている CF サーバー 129 のみと、すべての CF コンポーネントに対して CF_TRACE_ALL レベルでトレースをオンにするには、以下のコマンドを実行します。
db2trc cf on -id 129
- 例 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 [....]
- 次のコマンドを発行して、トレースをオンにします。
- 例 13
- 以下の例は、formattedFlow パラメーターの使用法を示しています。
- 次のコマンドを発行して、トレースをオンにします。
db2trc on -t
- 例えば、次のコマンドを発行して Db2 操作を実行します。
db2start
- トレース情報をバイナリー・ファイルにダンプするには、以下のコマンドを発行します。
db2trc dump db2trc.dmp
- バイナリー・ファイルを読みやすい報告書にフォーマット設定するには、以下のコマンドを発行します。
db2trc fflw db2trc.dmp db2trc.fflw
出力例を以下に示します。PID-TID EduName Node RecordNum 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
上記の『Stage #2 - Parsing』セクションのコマンド ccfmt は、コード・カバレッジ・トレース をダンプしてフォーマット設定します。
コード・カバレッジ・トレースは db2trc を拡張したもので、関数の入り口、出口、プローブ・ポイント、およびコード・パスの数を保持します。
コード・カバレッジ・トレースを使用して、頻繁に使用されている関数や、テスト時に触れられていない関数についての統計を収集することができます。
データベース・サーバーのトレースを実行する際は、 トレース機能をオフにしてからデータベース・マネージャーを開始することをお勧めします。 これは、UNIX および Linux プラットフォーム上で実行されるデータベース・マネージャーがトレースの変更を即座に認識するための最も信頼できる方法です。
db2trc on -m "*.*.155.*.*"
特定のデータベース・パーティションが問題に関連していることが分かっているなら、そのデータベース・パーティションだけをトレースしてください。オプション db2trc on -member NN を使用して、どのデータベース・パーティションがトレースされるか指定できます。
問題が特定のアプリケーション ID に関連しているなら、db2trc オプション db2trc on -appid <appID> を使用して、トレースをその特定のアプリケーション ID に制限できます。