イベント・モニターがデータをキャプチャーするイベントのタイプ

イベント・モニターを使用すると、システムで発生する 多様な種類のイベントに関する情報をキャプチャーできます。

次の表に、システムで発生するイベントで、 イベント・モニターを使用してモニターできるイベントのタイプをリストします。 また、さまざまなイベントに関して収集されるデータのタイプと、そのモニター・データが収集されるタイミングについても 記載しています。2 列目に示しているイベント・モニター名は、 そのタイプのイベント・モニターを CREATE EVENT MONITOR ステートメントによって作成するときに使用するキーワードに対応しています。

表 1. イベント・タイプ
モニターするイベントのタイプ イベント・モニター名 イベント・モニターの特性 詳細
ロックおよびデッドロック LOCKING このイベント・モニターの用途 ロックまたはデッドロックがいつ発生するか、および 関与しているアプリケーションを調べます。非推奨の DEADLOCKS イベント・モニターではなく LOCKING イベント・モニターを使用する利点には、 ロック・イベントとデッドロック・イベントの両方に関する統合的なレポートが行われる点や、 ロック待機およびロック・タイムアウトの情報も含んでいる点などがあります。
収集されるデータ 関係するアプリケーションについての広範囲の情報。 関係するステートメント (およびステートメント・テキスト) の識別や保持されているロックなど。
イベント・データが生成されるとき1 イベント・モニターの構成方法に応じて、 次のいずれかのイベント・タイプが検出されたとき
  • ロック・タイムアウト
  • デッドロック
  • 指定の期間を超えるロック待機
SQL ステートメント、または データベース・アクティビティーを生成するその他の操作の実行 ACTIVITIES このイベント・モニターの用途 システムで実行されているアクティビティーを把握するために、 個々のステートメントおよびその他のアクティビティーの実行を追跡します。 また、診断目的でアクティビティーをキャプチャーしたり、 SQL のリソース消費量を調べたりもします。
収集されるデータ アクティビティー・レベルのデータ。一般的には、ワークロード管理オブジェクトに関与するアクティビティーに関するデータ。
  • ワークロード管理オブジェクトに対する CREATE または ALTER ステートメント の COLLECT ACTIVITY DATA 節の一部として WITH DETAILS を指定した場合、 収集される情報には、対象のアクティビティーに関するステートメントとコンパイル環境の情報が含まれます。 WITH SECTION も指定すると、 ステートメント、コンパイル環境、セクション環境データ、 およびセクション actuals もキャプチャーされます。
  • また、ワークロード管理オブジェクトに対する CREATE または ALTER ステートメントに AND VALUES も指定した場合、収集される情報には、対象のアクティビティーの入力データ値も 含まれます。
イベント・データが生成されるとき1
  • COLLECT ACTIVITY DATA オプションがオンになっている サービス・クラス、ワークロード、または作業クラス内で実行されたアクティビティーが完了したとき。
  • COLLECT ACTIVITY DATA オプションが有効になっているアクティビティーがしきい値に違反したとき。
  • WLM_CAPTURE_ACTIVITY_IN_PROGRESS ストアード・プロシージャーが実行された瞬間。
  • WLM_SET_CONN_ENV ストアード・プロシージャーを使用して アクティビティー収集が有効にされた接続で、アクティビティーが実行されるとき。
SQL ステートメントの実行 STATEMENTS このイベント・モニターの用途 SQL ステートメントの実行の結果として データベースに対して要求された内容を調べます。
収集されるデータ ステートメントの開始/停止時刻、使用されている CPU、動的 SQL のテキスト、 SQLCA (SQL ステートメントの戻りコード)、 およびその他のメトリック (フェッチ・カウントなど)。 パーティション・データベースの場合: 使用された CPU、 実行時間、表および表キューの情報。
注 :
  • ステートメント・イベント・モニターを使用して SQL プロシージャーの実行をモニターする場合、 INSERT、SELECT、DELETE、UPDATE などのデータ操作言語 (DML) ステートメントは、イベントを生成します。 変数割り当てや制御構造 (例えば WHILE や IF) などのプロシージャー・ステートメントは、決定論的にイベントを生成しません。
  • ステートメントの開始/停止時刻は、 TIMESTAMP スイッチが OFF のときは使用できません。
イベント・データが生成されるとき SQL ステートメントの終了時2、 パーティション・データベースの場合はサブセクションの終了時2
作業単位 (トランザクション) の完了 UNIT OF WORK このイベント・モニターの用途 システムで実行された作業単位についての リソース使用量情報およびパフォーマンス・メトリックを収集します。この情報の用途は、 アプリケーションで使用されたシステム・リソースに関して請求またはチャージバックを行うために レポートを生成したり、実行の遅いルーチンによるパフォーマンス問題をトラブルシューティングしたりと 多岐にわたります。

TRANSACTIONS イベント・モニターに代わって推奨されます。

収集されるデータ 作業単位 (トランザクション) についての情報。 開始時刻、終了時刻、実行元のワークロードおよびサービス・クラスなど。 オプションで、作業単位の一部として実行されたステートメントの パッケージまたは実行可能 ID に関する情報を、要求メトリックと一緒に含めることができます。
イベント・データが生成されるとき1 作業単位の完了時
パッケージ・キャッシュからのセクションの追い出し PACKAGE CACHE このイベント・モニターの用途 パッケージ・キャッシュからなくなったステートメントの履歴 (および 関連するメトリック) をキャプチャーします。この情報は、 メモリーからなくなったステートメントのパフォーマンス・メトリックを調べる必要がある場合に 使用できます。
収集されるデータ ステートメント・テキストと、 そのセクションのすべての実行について集約したメトリックが含まれます。
イベント・データが生成されるとき1 パッケージ・キャッシュから項目が追い出されたとき
アプリケーションによるデータベースへの接続 CONNECTIONS このイベント・モニターの用途 アプリケーションによるデータベースへの接続ごとに、 メトリックおよびその他のモニター・エレメントをキャプチャーします。
収集されるデータ すべてアプリケーション・レベルのカウンターです。 例えば、アプリケーションがデータベースに接続した時刻、 アプリケーションがデータベースから切断した時刻、アプリケーションが関与した ロック・エスカレーションの数などがあります。
イベント・データが生成されるとき 接続の終了時2
データベースの非アクティブ化 DATABASE このイベント・モニターの用途 活動化以降のデータベース全体についての 情報を示すメトリックおよびその他のモニター・エレメントをキャプチャーします。
収集されるデータ すべてのデータベース・レベルのカウンター。 例えば、活動化以降にデータベースに確立された接続数、ロック待機した時間、 挿入されたデータの行数などがあります。
イベント・データが生成されるとき データベースの非アクティブ化時2
BUFFERPOOLS

TABLESPACES
このイベント・モニターの用途 バッファー・プールおよび表スペースに関する メトリックをキャプチャーします。
収集されるデータ バッファー・プール、プリフェッチャー、ページ・クリーナー、および個々のバッファー・プールの直接 I/O のカウンター。
イベント・データが生成されるとき データベースの非アクティブ化時2
TABLES このイベント・モニターの用途 データベースの活動化以降に変更された表に関する メトリックをキャプチャーします。
収集されるデータ 表レベルのカウンター。 読み取られた行数、書き込まれた行数、データ、LOB、または索引オブジェクトに使用されているディスク・ページ数などがあります。
イベント・データが生成されるとき データベースの非アクティブ化時2
ワークロード管理オブジェクトについての 統計およびメトリック STATISTICS このイベント・モニターの用途 データベース内の ワークロード管理オブジェクト (サービス・スーパークラス、ワークロードなど) についての 処理メトリックをキャプチャーします。 例えば、統計イベント・モニターを使用して、 特定のワークロードの CPU 使用率の時間変化を確認できます。
収集されるデータ システム上の個々のサービス・クラス、ワークロード、または作業クラス中で実行されたアクティビティーから統計が計算されます。
イベント・データが生成されるとき 統計は一定間隔で自動的に 収集できます。この間隔は、wlm_collect_int データベース構成パラメーターで 定義します。

WLM_COLLECT_STATS ストアード・プロシージャーを使用して 手動でデータを収集することもできます。

注: どちらの収集メカニズムでも、 統計モニター・エレメントの値は、収集が実行された後に 0 にリセットされます。
ワークロード管理しきい値の超過 THRESHOLD VIOLATIONS このイベント・モニターの用途 設定した特定のしきい値が、 データベース運用において、いつ超過されるのかを調べます。しきい値の設定対象は、CPU 時間からデータベース接続数、特定のステートメントの実行など、 多岐にわたります。収集されたデータは、 潜在的な問題がないか (TEMPORARY 表スペースの限度への接近など) モニターするためなどの、 さまざまな目的に使用できます。
収集されるデータ しきい値違反情報。
イベント・データが生成されるとき しきい値違反の検出時。しきい値は、CREATE THRESHOLD ステートメントを使用して定義します。
データベースまたはデータベース・マネージャー構成への変更 CHANGE HISTORY このイベント・モニターの用途 データベースおよびデータベース・マネージャーの構成変更、 レジストリー設定変更、DDL ステートメントの実行、ならびにユーティリティーの実行をキャプチャーします。
収集されるデータ データベースおよびデータベース・マネージャーの 構成パラメーターの変更、レジストリー変数の変更、DDL ステートメントの実行、 特定の DB2® ユーティリティーおよびコマンドの実行、 ならびに変更履歴イベント・モニターの開始。
注: 一般的に、 変更履歴イベント・モニターが非アクティブである間、またはデータベースが オフラインの間に発生したイベントに関連する情報は、キャプチャーされません。ただし、レジストリー変数および 構成パラメーターの変更は記録されます。
イベント・データが生成されるとき1 モニターの開始時、パラメーターまたは変数の変更時、あるいは コマンド、DDL、またはユーティリティーの完了時。
注 :
  1. アクティビティー・イベント・モニターがアクティブなまま データベースを非アクティブ化すると、 キューにバックログされているアクティビティー・レコードは廃棄されます。アクティビティー・イベント・モニター・レコードをすべて取得し、どれも破棄されないようにするには、 データベースを非アクティブ化する前にまず、アクティビティー・イベント・モニターを非アクティブ化してください。 アクティビティー・イベント・モニターを明示的に非アクティブ化する場合、 イベント・モニターは、キュー内のすべてのバックログ・アクティビティー・レコードが処理されてから非アクティブ化されます。
  2. データ収集が自動的に行われる規定のタイミングに加えて、 FLUSH EVENT MONITOR SQL ステートメントを使用してイベントを生成することもできます。 この方式によって生成されたイベントは、 フラッシュされたイベント・モニターに関連したすべてのモニター・タイプ (DEADLOCKS および DEADLOCKS WITH DETAILS を除く) に関する現行のデータベース・モニター値とともに書き込まれます。
表 2. 非推奨イベント・モニターのイベント・タイプ
モニターするイベントのタイプ イベント・モニター名 イベント・モニターの特性 詳細
デッドロック DEADLOCKS2 このイベント・モニターの用途 デッドロックがいつ発生するか、および 関与しているアプリケーションを調べます。
収集されるデータ 関係しているアプリケーション、および競合しているロック。
イベント・データが生成されるとき デッドロック検出時
DEADLOCKS WITH DETAILS2 このイベント・モニターの用途 デッドロックがいつ発生するか、および 関与しているアプリケーションを調べます。
収集されるデータ 関係するアプリケーションについての広範囲の情報。 関係するステートメント (およびステートメント・テキスト) の識別や保持されているロックなど。 DEADLOCKS イベント・モニターではなく DEADLOCKS WITH DETAILS イベント・モニターを使用すると追加の情報が収集されるため、 デッドロックが発生したときにパフォーマンス・コストの負担になります。
イベント・データが生成されるとき デッドロック検出時
DEADLOCKS WITH DETAILS HISTORY2 このイベント・モニターの用途 デッドロックがいつ発生するか、および 関与しているアプリケーションを調べます。
収集されるデータ DEADLOCKS WITH DETAILS イベント・モニターで報告されるすべての情報。ならびにデータベース・パーティションのデッドロック・シナリオにかかわるロック (このデータベース・パーティションで保持されるロック) を所有する、各アプリケーションの現行作業単位のステートメント履歴。 DEADLOCKS WITH DETAILS HISTORY イベント・モニターを使用すると、ステートメント履歴を追跡することになるので、活動化したときに若干モニター・パフォーマンスの負担になります。
イベント・データが生成されるとき デッドロック検出時
DEADLOCKS WITH DETAILS HISTORY VALUES2 このイベント・モニターの用途  
収集されるデータ デッドロックの詳細およびデッドロックの詳細履歴で報告されるすべての情報。ならびにステートメントの実行時にパラメーター・マーカーに提供されるあらゆる値。 DEADLOCKS WITH DETAILS HISTORY VALUES イベント・モニターを使用すると、さらにデータ値をコピーすることになるため、活動化したときにパフォーマンス・コストの大きな負担になります。
イベント・データが生成されるとき デッドロック検出時
作業単位 (トランザクション) の完了 TRANSACTIONS3 このイベント・モニターの用途  
収集されるデータ 作業単位の作業開始/停止時刻、直前の作業単位時間、使用されている CPU、 ロッキング、およびロギングのメトリック。 XA で実行している場合は、トランザクション・レコードは生成されません。
イベント・データが生成されるとき 作業単位の完了時1
注 :
  1. データ収集が自動的に行われる規定のタイミングに加えて、 FLUSH EVENT MONITOR SQL ステートメントを使用してイベントを生成することもできます。 この方式によって生成されたイベントは、 フラッシュされたイベント・モニターに関連したすべてのモニター・タイプ (DEADLOCKS および DEADLOCKS WITH DETAILS を除く) に関する現行のデータベース・モニター値とともに書き込まれます。
  2. このイベント・モニターは推奨されなくなりました。この使用は推奨されておらず、将来のリリースではサポートされなくなる予定です。 CREATE EVENT MONITOR FOR LOCKING ステートメントを使用して、ロック・タイムアウト、ロック待機、およびデッドロックなど、ロック関連のイベントをモニターしてください。
  3. このイベント・モニターは推奨されなくなりました。この使用は推奨されておらず、将来のリリースではサポートされなくなる予定です。 トランザクション・イベントをモニターするには、 CREATE EVENT MONITOR FOR UNIT OF WORK ステートメントを使用してください。
注: 「デッドロックの詳細」イベント・モニターが、新規に作成されるデータベースごとに作成されます。 このイベント・モニターは DB2DETAILDEADLOCK という名前で、 データベースが活動化されると開始され、 データベース・ディレクトリー内のファイルに書き込みます。 このイベント・モニターに必要な追加のプロセッサー時間は、 これをドロップすることによって回避することができます。 DB2DETAILDEADLOCK イベント・モニターは使用すべきではありません。 この使用は推奨されておらず、将来のリリースではサポートされなくなる予定です。 ロック・タイムアウト、ロック待機、デッドロックなどのロック関連イベントをモニターするには、CREATE EVENT MONITOR FOR LOCKING ステートメントを使用してください。