ガバナー・ログ・ファイル

ガバナー・デーモンは処置を実行する度に、 ログ・ファイルにレコードを書き込みます。

処置には以下のものが含まれます。
  • ガバナーの開始または停止
  • ガバナー構成ファイルの読み取り
  • アプリケーションの優先順位の変更
  • アプリケーションの強制停止
  • エラーまたは警告の検出

ガバナー・デーモンには、それぞれに別個のログ・ファイルがあるため、 多くのガバナー・デーモンが同一のファイルに同時に書き込みを行おうとするときに起こる可能性のある、 ファイル・ロッキングのボトルネックを防ぐことができます。 ガバナー・ログ・ファイルを照会するには、db2govlg コマンドを使用します。

ログ・ファイルは、 sqllib ディレクトリーの log サブディレクトリーに保管されます。ただし、Windows オペレーティング・システムの場合は例外です。この場合、 log サブディレクトリーは、Windows オペレーティング・システムがアプリケーション・ログ・ファイルをホストするために使用する共通アプリケーション・データ・ディレクトリーの下にあります。 db2gov コマンドを使用してガバナーを開始するときには、 ログ・ファイルの基底名を指定します。 管理対象となる各データベース・パーティション用のログ・ファイルを区別するため、ログ・ファイル名には必ずデータベース名を含めてください。 パーティション・データベース環境においては、ガバナーごとにファイル名が固有になるように、ガバナー・デーモンが実行されているデータベース・パーティションの番号が、自動的にログ・ファイル名の後に付加されます。

ログ・ファイル・レコード・フォーマット

ログ・ファイルの各レコードの形式は、次のとおりです。
   Date Time DBPartitionNum RecType Message
Date および Time フィールドの形式は、yyyy-mm-dd-hh.mm.ss です。 このフィールドでソートを行うことによって各データベース・パーティションごとのログ・ファイルをマージすることができます。 DBPartitionNum フィールドは、ガバナーが実行されているデータベース・パーティションの番号が含まれます。
RecType フィールドには、ログに書き込まれるレコードのタイプによって異なる値が入ります。 フィールドに入れることができる値は、以下のとおりです。
  • ACCOUNT: アプリケーションの会計統計
  • ERROR: エラーが起きた
  • FORCE: アプリケーションが強制された
  • NICE: アプリケーションの優先順位が変更された
  • READCFG: ガバナーが構成ファイルの読み取りを行った
  • SCHEDGRP: エージェントの優先順位に変更が生じた
  • START: ガバナーが開始された
  • STOP: ガバナーが停止された
  • WARNING: 警告が起きた
これらの値の一部について、以下のリストで詳細に説明します。
ACCOUNT
ACCOUNT レコードは、以下の状況で書き込まれます。
  • アプリケーションの最後の ACCOUNT レコードが書き込まれたときから、このアプリケーションの agent_usr_cpu_time または agent_sys_cpu_time モニター・エレメントの値が変更された。
  • アプリケーションがもはやアクティブでない。
ACCOUNT レコードは、以下のようなフォーマットになります。
<auth_id> <appl_id> <applname> <connect_time> <agent_usr_cpu_delta>
  <agent_sys_cpu_delta>
エラー
ERROR レコードは、ガバナー・デーモンがシャットダウンするときに書き込まれます。
FORCE
FORCE レコードは、ガバナー構成ファイル内の規則に基づいてガバナーがアプリケーションを強制するときに書き込まれます。 FORCE レコードは、以下のようなフォーマットになります。
<appl_name> <auth_id> <appl_id> <coord_partition> <cfg_line>
  <restriction_exceeded>
ここで、
coord_partition (coord_partition)
アプリケーションの調整データベース・パーティションの番号を指定します。
cfg_line (cfg_line)
アプリケーションを強制する規則が位置する、ガバナー構成ファイル内の行番号を指定します。
制限超過 (restriction_exceeded)
規則違反の詳細を提供します。 有効な値は以下のとおりです。
  • CPU: アプリケーション USR CPU と SYS CPU の合計時間 (秒単位)
  • Locks: アプリケーションが保持したロックの合計数
  • Rowssel: アプリケーションが選択した行の合計数
  • Rowsread: アプリケーションが読み取った行の合計数
  • Idle: アプリケーションがアイドルであった時間の長さ
  • ET: アプリケーションの現在の作業単位が開始された (uowtime setlimit を超過した) ときからの経過時間
NICE
NICE レコードは、ガバナー構成ファイル内の規則に基づいて、ガバナーがアプリケーションの優先順位を変更するときに書き込まれます。 NICE レコードは、以下のようなフォーマットになります。
<appl_name> <auth_id> <appl_id> <nice_value> <cfg_line>
  <restriction_exceeded>
ここで、
nice_value
アプリケーションのエージェント・プロセス用の優先度の値の増分または減分を指定します。
cfg_line (cfg_line)
アプリケーションの優先順位を変更する規則が位置する、ガバナー構成ファイル内の行番号を指定します。
制限超過 (restriction_exceeded)
規則違反の詳細を提供します。 有効な値は以下のとおりです。
  • CPU: アプリケーション USR CPU と SYS CPU の合計時間 (秒単位)
  • Locks: アプリケーションが保持したロックの合計数
  • Rowssel: アプリケーションが選択した行の合計数
  • Rowsread: アプリケーションが読み取った行の合計数
  • Idle: アプリケーションがアイドルであった時間の長さ
  • ET: アプリケーションの現在の作業単位が開始された (uowtime setlimit を超過した) ときからの経過時間
SCHEDGRP
SCHEDGRP レコードは、アプリケーションがスケジューリング・グループに追加される場合、またはアプリケーションが 1 つのスケジューリング・グループから別のスケジューリング・グループへ移動する場合に書き込まれます。 SCHEDGRP レコードは、以下のようなフォーマットになります。
<appl_name> <auth_id> <appl_id> <cfg_line> <restriction_exceeded>
ここで、
cfg_line (cfg_line)
アプリケーションをスケジュールする規則が位置する、ガバナー構成ファイル内の行番号を指定します。
制限超過 (restriction_exceeded)
規則違反の詳細を提供します。 有効な値は以下のとおりです。
  • CPU: アプリケーション USR CPU と SYS CPU の合計時間 (秒単位)
  • Locks: アプリケーションが保持したロックの合計数
  • Rowssel: アプリケーションが選択した行の合計数
  • Rowsread: アプリケーションが読み取った行の合計数
  • Idle: アプリケーションがアイドルであった時間の長さ
  • ET: アプリケーションの現在の作業単位が開始された (uowtime setlimit を超過した) ときからの経過時間
START
START レコードは、ガバナーが始動するときに書き込まれます。 START レコードは、以下のようなフォーマットになります。
Database = <database_name>
STOP
STOP レコードは、ガバナーが停止するときに書き込まれます。 それは、以下のようなフォーマットになります。
Database = <database_name>
警告
WARNING レコードは、以下の状況で書き込まれます。
  • アプリケーションを強制するために sqlefrce API が呼び出されましたが、正の SQLCODE が返されました。
  • スナップショット呼び出しが 1611 以外の正の SQLCODE を戻した (SQL1611W)。
  • スナップショットが -1224 (SQL1224N) または -1032 (SQL1032N) 以外の負の SQLCODE を戻した。 これらの戻りコードは、以前にアクティブだったインスタンスが停止したときに生じます。
  • Linux® および UNIX で、シグナル・ハンドラーをインストールしようとして失敗しました。

ここには標準値が書き込まれるので、 ログ・ファイルを照会してさまざまなタイプの処置を見ることができます。 Message フィールドには、レコード・タイプに応じて異なるその他の非標準情報が入ります。 例えば、FORCE レコードまたは NICE レコードには Message フィールドのアプリケーション情報が示され、ERROR レコードにはエラー・メッセージが入れられます。

ガバナー・ログ・ファイルは、次の例のようになります。
2007-12-11-14.54.52    0 START      Database = TQTEST
2007-12-11-14.54.52    0 READCFG    Config = /u/db2instance/sqllib/tqtest.cfg
2007-12-11-14.54.53    0 ERROR      SQLMON Error: SQLCode = -1032
2007-12-11-14.54.54    0 ERROR      SQLMONSZ Error: SQLCode = -1032