トラップ・ファイル
Db2® は、トラップ、セグメンテーション違反、または例外のために処理を続行できない場合に、トラップ・ファイルを生成します。
Db2 によって予約されたすべてのシグナルまたは例外は、トラップ・ファイルに記録されます。 トラップ・ファイルには、エラーが発生したときに実行されていた関数シーケンスが含まれています。 このシーケンスは、 「関数呼び出しスタック」または「スタック・トレース」と呼ばれることもあります。 トラップ・ファイルには、シグナルまたは例外がキャッチされた時のプロセスの状態に関する追加情報も含まれています。
fenced スレッド・セーフ・ルーチンの実行中にアプリケーションが強制的に停止されると、トラップ・ファイルが生成されます。 トラップは、プロセスのシャットダウン中に発生します。 これは致命的エラーではなく、心配する必要はありません。
ファイルは、diagpath データベース・マネージャー構成パラメーターで指定されるディレクトリーにあります。
すべてのプラットフォームで、トラップ・ファイル名はプロセス ID (PID) で始まり、その後にスレッド ID (TID)、パーティション番号 (単一パーティション・データベースでは 000) が続き、 .trap.txt
で終わります。
特定の条件が生じた場合に、コードによって生成される診断トラップもあります。 ここでいう特定の条件とは、それによってインスタンスが異常終了するとは限らないが、スタックを調べると役に立つ条件のことです。 これらのトラップの名前は、10 進形式の PID の後にパーティション番号 (単一パーティション・データベースの場合は 0) を付けた形になります。
例:
6881492.2.000.trap.txt
は、プロセス ID (PID) が 6881492、スレッド ID (TID) が 2 のトラップ・ファイルです。6881492.2.010.trap.txt
は、プロセスとスレッドがパーティション 10 で実行されているトラップ・ファイルです。
トラップ・ファイルは誤ったシグナルが発生すると生成されるのに対して、スタック・トレース・ファイルは誤っていないシグナル (例えば SIGUSR1、SIGUSR2、SQLO_SIG_DUMP、SQLO_SIG_FREEZE) に対して生成することができます。
db2pd -stack all コマンドまたは db2pd -dump all コマンドを使用して、スタック・トレース・ファイルをオンデマンドで生成できます。 これらのファイルの内容はトラップ・ファイルと同じですが、診断のみを目的として生成されます。
db2pd -stack eduid コマンドまたは db2pd -dump eduid コマンドを使用して、個々のエンジン・ディスパッチ可能単位 (EDU) のスタック・トレースを生成できます。 スタック・トレースは「.stack.txt」で終わるファイルに入れられ、このファイルの内容はトラップ・ファイルと同じになります。 スタック・トレースは、IBM ソフトウェア・サポートから要求があった場合に診断のみを目的として生成してください。
db2pd コマンド構文について詳しくは、 db2pd - Db2 データベース・コマンドのモニターおよびトラブルシューティング を参照してください。