イベント・モニターのファイル管理

一部のイベント・モニターでは、イベント・データをテキスト・ファイルに 書き込むことができます。 CREATE または ALTER EVENT MONITOR ステートメントのオプションを使用すると、作成するファイル数およびファイル・サイズの上限を 構成できます。

ファイル・イベント・モニターにより、イベント・モニターは、 イベント・レコードをファイルに保管することができます。 イベント・モニターのすべての出力は、 CREATE EVENT MONITOR ステートメントの FILE パラメーターで指定されたディレクトリーに入れられます。 したがって、モニターが活動化される前に、そのディレクトリーが存在していなければなりません。 存在しないと、SET EVENT MONITOR コマンドがエラーを戻します。ディレクトリーが存在しない場合、データベース・マネージャーはそれを作成しません。
重要: ファイル・イベント・モニターが最初にアクティブ化されるときに、 db2event.ctl という名前の制御ファイルがこのディレクトリーに作成されます。 このファイルは除去したり修正したりしないでください。

デフォルトでは、イベント・モニターはそのトレースを 00000000.evt と呼ばれる単一のファイルに書き込みます。 このファイルは、ファイル・システム上にスペースがあるかぎり大きくなります。 CREATE EVENT MONITOR ステートメントの MAXFILESIZE パラメーターを使ってファイル・サイズ限界を指定した場合には、1 つのファイルが満杯になると、新しいファイルに出力が送られます。 新しいファイルが作成されるたびに、ファイル名を構成する番号が 1 つずつ増えます。 したがって、アクティブ・ファイルは、番号の一番大きいファイルとなります。

また、CREATE EVENT MONITOR ステートメントの MAXFILES パラメーターを使って、 イベント・モニター・トレース全体の最大サイズを制限できます。 ファイルの数が MAXFILES で定義された最大値を超えると、 イベント・モニターは自らを非アクティブ化し、 以下のメッセージが管理通知ログに書き込まれます。
DIA1601I Event Monitor monitor-name was deactivated when it reached
its preset MAXFILES and MAXFILESIZE limit.
このメッセージを受け取った場合、どのイベント・モニター・ファイルも削除しないでください。 削除した場合、db2evmon コマンドを使ってイベント・モニター情報を表示することが全くできなくなります (残りのファイルに入っている情報を含む)。 そうする代わりに、以下のいずれかの操作を行ってください。
  • MAXFILES および MAXFILESIZE 制限を使わずにイベント・モニターを再作成します。
  • MAXFILES および MAXFILESIZE パラメーターによって実施される制限をそのまま残します。ディレクトリー内の最新の *.evt ファイルを除くすべてのファイルを、別のディレクトリーまたはファイル・システムに移動します。 その後、新しいディレクトリー内のファイルからイベント・モニター情報を表示できます。 必要に応じて、これを自動的に行うスクリプトを作成できます。
どちらの方法でも、ステートメント SET EVENT MONITOR event-monitor-name STATE 1 を使用してイベント・モニターを再活動化し、 DIA1601I メッセージを受け取った後で情報の収集を再開する必要があります。

ファイル・イベント・モニターを再始動する場合、既存のデータを消去するか、 既存のデータの後に新規データを追加することができます。 このオプションは、CREATE EVENT MONITOR ステートメントで指定されます。 そこでは、APPEND モニターまたは REPLACE モニターのどちらかを作成することができます。 APPEND がデフォルトのオプションです。 APPEND イベント・モニターは、 最後に使用していたファイルの終わりから書き込みを開始します。 そのファイルを除去すると、次の順番のファイル番号が使用されます。 追加のイベント・モニターが再始動されると、start_event だけが生成されます。 イベント・ログ・ヘッダーとデータベース・ヘッダーは、 最初の活動化のときに生成されます。 REPLACE イベント・モニターは常に既存のイベント・ファイルを削除し、00000000.evt から書き込みを開始します。

注: イベント・モニターに REPLACE オプションを使用しなかった場合は、以下のステップを実行して、イベント・モニターに新規データ・セットの収集を強制的に開始させることができます。
  1. SET EVENT MONITOR event-monitor-name STATE 0 コマンドを使用して、イベント・モニターを非アクティブにします。
  2. CREATE EVENT MONITOR ステートメントの FILE オプションで指定されたディレクトリーの中にあるファイルをすべて削除します。
  3. SET EVENT MONITOR event-monitor-name STATE 1 コマンドを使用して、イベント・モニターを再活動化します。

ファイル・イベント・モニターがディスク・スペースを使い尽くした場合、 システム・エラー・レベル・メッセージを管理通知ログに記録した後、 自動的にシャットダウンします。

イベント・モニターがアクティブになっている時点でモニター・データを処理するとよいかもしれません。 そのことは可能です。 さらに、ファイルの処理を終えたとき、そのファイルを削除し、 次のモニター・データのためにスペースを解放することができます。 イベント・モニターを停止して再始動しないかぎり、 次のファイルに強制的に切り替えることはできません。 また、APPEND モードでなければなりません。 アクティブ・ファイル内でどのイベントの処理が終わったかを追跡するために、処理された最後のレコードのファイル番号と場所を追跡する単純なアプリケーションを作成できます。 次回にトレースを処理するときには、アプリケーションはそのファイル場所を検索できます。