診断ログ・ファイル項目の解釈

db2diag ログ・ファイル分析ツール (db2diag) は、db2diag ログ・ファイルのフィルター処理とフォーマットに使用します。 標準化されたメッセージ・フォーマットで管理通知ログ・メッセージの追加部分が db2diag ログ・ファイルに記録された場合は、データベースで何が起こったのかを理解するために、db2diag ログ・ファイルを最初に表示することをお勧めします。

db2diag を使用する代わりに、テキスト・エディターを使用して、問題が発生した可能性のあるマシンの診断ログ・ファイルを表示できます。 最新のイベントは、ファイルの一番下に記録されています。

注: 管理通知 (instance_name.nfy) および診断 (db2diag) ログは、単一のログ・ファイルとして 継続的に 増大します。 diagsize データベース・マネージャー構成パラメーターがゼロ以外の値に設定されている場合、管理通知と db2diag ログ・ファイルの両方が一連のローテーション・ログ・ファイル (instance_name.N.nfy および db2diag.N.log) になります。これらのログ・ファイルの合計サイズは、 diagsize 構成パラメーターの値によって決定されます。

以下の例はサンプル・ログ項目のヘッダー情報で、ログのすべての部分が示されています。

注: すべてのログ項目にこれらのすべての部分が含まれるわけではありません。 すべての db2diag ログ・ファイルレコードに必ず含まれるのは、最初のいくつかのフィールド (タイム・スタンプから TID まで) および FUNCTION だけです。
2007-05-18-14.20.46.973000-240 1  I27204F655 2  LEVEL: Info 3 
PID : 3228 4  TID : 8796 5  PROC : db2syscs.exe 6 
INSTANCE: DB2MPP 7  NODE : 002 8  DB : WIN3DB1 9 
APPHDL : 0-51 10  APPID: 9.26.54.62.45837.070518182042 11 
AUTHID : UDBADM 12  
EDUID : 8796 13  EDUNAME: db2agntp 14  (WIN3DB1) 2
FUNCTION: 15  Db2, data management, sqldInitDBCB, probe:4820
DATA #1 : 16  String, 26 bytes
Setting ADC Threshold to: 
DATA #2 : unsigned integer, 8 bytes 
1048576

凡例:

1秒.
メッセージのタイム・スタンプとタイム・ゾーン。
注: db2diag ログ・ファイル内のタイム・スタンプには、タイム・ゾーンが含まれています。 以下に例を示します。2006-02-13-14.34.35.965000-300、ここで "-300"UTC (協定世界時、旧称 GMT) とアプリケーション・サーバーの現地時間との差 (分単位) です。 つまり -300 とは UTC マイナス 5 時間という意味で、米国の東部標準時 (EST) がこれに該当します。
2
レコード ID フィールド。 db2diag ログ・ファイルの recordID は、現行メッセージが記録されるファイル・オフセット (例えば、 27204) と、 Db2® 診断ログが作成されたプラットフォームのメッセージ長 (例えば、 655) を指定します。
3
メッセージの診断レベル。 レベルは以下のとおりです。Info, Warning, Error, Severe, CriticalおよびEvent.
4
プロセス ID
5
スレッド ID
6.
プロセス名
7.
メッセージを生成したインスタンスの名前。
8.
マルチパーティション・システムの場合、メッセージを生成したデータベース・パーティション。 (非パーティション・データベースでは、この値は "000" です。)
9.
データベース名
10.
アプリケーション・ハンドル。 この値は、db2pd 出力ファイルおよびロック・ダンプ・ファイルの値と同じになります。 コーディネーター・パーティション番号の後にダッシュ (-)、その後にコーディネーター索引番号が示されます。
11.
プロセスが作動しているアプリケーションの識別番号。 この例では、メッセージを生成したプロセスは、ID 9.26.54.62.45837.070518182042 のアプリケーションのために作動しています。

TCP/IP によって生成されるアプリケーション ID は、3 つのセクションから構成されます。

  1. IP アドレス: 最大 8 個の 16 進文字を使用する 32 ビットの数値として表されます。
  2. ポート番号: 4 個の 16 進文字として表されます。
  3. このアプリケーションのインスタンスを表すユニーク ID
注: 16 進バージョンの IP アドレスまたはポート番号が 0 から 9 で始まる場合、それらは G から P に変更されます。 例えば、"0" は "G" に、"1" は "H" にそれぞれマップされます。 IP アドレス AC10150C.NA04.006D07064947 は次のように解釈されます: IP アドレスは AC10150C のままで、172.16.21.12 に変換されます。 ポート番号は NA04 です。 最初の文字 "N" は "7" にマップされます。 したがって、16 進形式のポート番号は 7A04 となり、これは 10 進形式で 31236 に変換されます。

この値は appl_id モニター・エレメント・データと同じです。 この値の解釈の方法の詳細については、appl_id モニター・エレメントの資料を参照してください。

特定のアプリケーション ID の詳細情報を識別するには、以下のいずれかを行ってください。

  • Db2 サーバーで LIST APPLICATIONS コマンドを使用するか、 Db2 Connect ゲートウェイで LIST DCS APPLICATIONS を使用して、アプリケーション ID のリストを表示します。 このリストから、エラーが起きたクライアントに関する情報を判別できます (データベース・パーティション名、TCP/IP アドレスなど)。
  • GET SNAPSHOT FOR APPLICATION コマンドを使用して、アプリケーション ID のリストを表示します。
  • db2pd -applications -db <dbname> コマンドを使用します。
12
許可 ID。
13
エンジン・ディスパッチ可能単位 ID。
14
エンジン・ディスパッチ可能単位の名前。
15.
製品名 (「Db2」)、コンポーネント名 (データ管理)、およびメッセージを書き込んでいる関数名 (関数内のプローブ・ポイント (4820) と同様) (sqlInitDBCB)。
16.
呼び出した関数から返された情報。 複数のデータ・フィールドが返される可能性があります。

サンプル db2diag ログ・ファイルの項目をすでに見ましたので、可能なすべてのフィールドのリストをご覧ください。

<timestamp><timezone>       <recordID>         LEVEL: <level> (<source>)
PID     : <pid>             TID  : <tid>       PROC : <procName>  
INSTANCE: <instance>        NODE : <node>      DB   : <database>
APPHDL  : <appHandle>       APPID: <appID>	
AUTHID  : <authID>
EDUID   : <eduID>           EDUNAME: <engine dispatchable unit name>
FUNCTION: <prodName>, <compName>, <funcName>, probe:<probeNum>
MESSAGE : <messageID>  <msgText>
CALLED  : <prodName>, <compName>, <funcName>   OSERR: <errorName> (<errno>)
RETCODE : <type>=<retCode> <errorDesc>
ARG #N  : <typeTitle>, <typeName>, <size> bytes
... argument ...
DATA #N : <typeTitle>, <typeName>, <size> bytes
... data ...

上記の例で説明されなかったフィールドは以下のとおりです。

  • <source> ログに記録されたエラーの原因を示します。 (サンプルの最初の行の最後にあります。) 可能な値は次のとおりです。

    • origin-エラーが発生した関数によってメッセージがログに記録される (開始点)
    • OS-オペレーティング・システムによってエラーが生成された
    • received-別のプロセス (クライアント/サーバー) からエラーを受け取りました
    • sent-エラーが別のプロセス (クライアント/サーバー) に送信されました
  • MESSAGEログに記録されているメッセージが入っています。 以下のもので構成されます。

    • <messageID>-メッセージ番号 (例えば、 ECF=0x9000004A または DIA8604C )
    • <msgText>-エラーの説明

    When theCALLEDフィールドも存在します。<msgText> は、以下によって返されたエラーの影響です。CALLEDメッセージをログに記録する関数 (FUNCTION フィールドで指定)

  • CALLEDこれは、エラーを戻した関数です。 以下のもので構成されます。

    • <prodName>-製品名:「OS」、「Db2」、「Db2 Tools」、または「Db2 Common」
    • <compName>-コンポーネント名 (システム・コールの場合は「-」)
    • <funcName>-呼び出された関数名
  • OSERRこれは、CALLED システム呼び出しによって戻されたオペレーティング・システム・エラーです。 (CALLED と同じ行の最後にあります。) 以下のもので構成されます。
    • <errorName>-システム固有のエラー名
    • <errno>-オペレーティング・システム・エラー番号
  • ARGこのセクションでは、エラーを返した関数呼び出しの引数をリストします。 以下のもので構成されます。
    • <N>-「呼び出し先」関数への呼び出しにおける引数の位置
    • <typeTitle>-N 番目の引数 typename に関連付けられたラベル
    • <typeName>-ログに記録される引数のタイプの名前
    • <size>-ログに記録される引数のサイズ
  • DATAこれには、ロギング機能によってダンプされた追加データが含まれます。 以下のもので構成されます。
    • <N>-ダンプされるデータ・オブジェクトの順次番号
    • <typeTitle>-ダンプされるデータのラベル
    • <typeName>-ログに記録されるデータ・フィールドのタイプの名前。例えば、 PD_TYPE_UINT32、PD_TYPE_STRING。
    • <size>-データ・オブジェクトのサイズ