作業単位イベント・モニター

作業単位イベント・モニターは、作業単位が完了した場合はいつでも、つまりコミットまたはロールバックがあるときはいつでも、イベントを記録します。 個々の作業単位に関するこの履歴情報は、チャージバックの目的 (CPU の使用に応じて課金される)、および応答時間サービス・レベル目標の順守のモニターに役立ちます。

作業単位イベント・モニターは、要求メトリックを使用してシステム・パースペクティブ・モニターを実行する 1 つの方法です。 作業単位イベント・モニターに最も近い代替手段または補足手段は、統計イベント・モニター、MON_GET_UNIT_OF_WORK 表関数、および MON_GET_UNIT_OF_WORK_DETAILS 表関数です。

作業単位イベント・モニターを使用すると、 作業単位内で使用されたパッケージ、および各パッケージが使用されたネスティング・レベルのリストを 収集できます。 この情報によって、ストアード・プロシージャーのトラブルシューティングが 容易になります。 作業単位内で実行されたステートメントについて、実行可能 ID およびステートメント・レベルの関連メトリックのリストを生成することもできます。

作業単位イベント・モニターを作成し、作業単位イベント・モニター・データを収集するには、DBADM または SQLADM 権限が必要です。

作業単位イベント・モニターの作成

作業単位イベント・モニターの出力を、未フォーマット・イベント (UE) 表または通常の表のどちらに書き込むかを選択できます。 最適な出力形式を選択する方法について詳しくは、 イベント・モニターの出力オプション を参照してください。

どちらのタイプの表を使用するかにかかわらず、 作業単位イベント・モニターを作成するときには、 そのイベント・モニターの出力を格納する表を保管する表スペースを指定します。 推奨されている手法は、 表を保管するための専用の表スペースを構成する方法です。 ただし、イベント・モニターを作成するときに、 既存の表スペースを指定することもできます。 表スペースを指定しなかった場合は、いずれかの表スペースが自動的に選択されます。

デフォルトおよびベスト・プラクティスを使用して 作業単位イベント・モニターを作成するには、次の CREATE EVENT MONITOR ステートメントを使用します。 次の例のステートメントは、 デフォルトを使用できる箇所にはデフォルトを使用し、表スペース MY_EVMON_TABLESPACE 内の UE 表に出力を保管するように指定しています。
CREATE EVENT MONITOR MY_UOW_EVMON
  FOR UNIT OF WORK
   WRITE TO UNFORMATTED EVENT TABLE (IN MY_EVMON_TABLESPACE)

データ収集の構成

作業単位データについては、 4 つの異なる収集レベルを指定できます。
  1. なし
  2. 基本的な作業単位データ
    1. 作業単位内で実行されたパッケージに関する情報
    2. 作業単位内で実行された ステートメントの実行可能 ID のリスト
データベース構成パラメーターを使用すると、データベースでアクティブになっているすべての作業単位イベント・モニターの 作業単位データ収集を制御できます。 一方、特定のワークロード、サービス・クラス、または作業アクションに関する 情報の収集を制御するには、 該当するワークロード・オブジェクトに対して CREATE および ALTER ステートメントを使用します。
データベース・レベルでデータ収集を構成するには、 UPDATE DATABASE CONFIGURATION コマンドを使用して、 mon_uow_data データベース構成パラメーターと、オプションで mon_uow_pkglist および mon_uow_execlist データベース構成パラメーターを設定します。 これらのパラメーターに指定できる値の組み合わせを、表 1に示します。
表 1. 作業単位イベント・モニターの構成パラメーターに設定可能な値
収集するデータ mon_uow_data mon_uow_pkglist mon_uow_execlist
作業単位データを収集しない NONE (デフォルト) OFF(デフォルト) OFF (デフォルト)
基本的な作業単位データのみ収集する ベース OFF (デフォルト) OFF (デフォルト)
パッケージ・リスト情報は収集するが、 実行可能 ID に関する情報は収集しない ベース ON OFF (デフォルト)
実行可能 ID に関する情報は収集するが、 パッケージのリストは収集しない ベース OFF (デフォルト) ON
基本的な作業単位データ、 パッケージ・リスト情報、および実行可能 ID に関する情報を収集する ベース ON ON
ヒント:
  • これらの構成パラメーターのいずれも設定しない場合、作業単位データは収集されません。 ただし、特定のワークロード・オブジェクトに対して収集を有効にしている場合は別です。 例えば CREATE SERVICE CLASS、ALTER WORKLOAD ステートメントのような CREATE または ALTER ステートメントのいずれかを、 該当するワークロード・オブジェクト・タイプに対して使用して、特定のワークロード・オブジェクトに関する収集を有効にすることができます。
  • 基本的な作業単位データを収集して、パッケージ・リストおよび実行可能 ID 情報は収集しない場合、mon_uow_data 構成パラメーターを BASE に設定し、mon_uow_pkglist および mon_uow_execlist 構成パラメーターは省略します。 これらを明示的に設定しなければ、デフォルト値 OFF が使用されます。
  • パッケージ・リストおよび実行可能 ID 情報の一方または両方を収集する場合は、mon_uow_data 構成パラメーターを BASE に設定する必要もあります。 mon_uow_data 構成パラメーターを NONE に設定すると、mon_uow_pkglist および mon_uow_execlist 構成パラメーターの設定にかかわらず、 情報は収集されません。
特定のワークロード・オブジェクトのデータ収集を制御するには、 対象となる特定のタイプのワークロード・オブジェクトに対する CREATE または ALTER ステートメントの COLLECT UNIT OF WORK DATA 節を使用してください。 例えば、ワークロード REPORTS に関する基本的な作業単位イベント・データおよび パッケージ・リスト情報を収集するには、次のようなステートメントを実行すると良いでしょう。
ALTER WORKLOAD REPORTS COLLECT UNIT OF WORK DATA BASE INCLUDE PACKAGE LIST
作業単位内で実行されたステートメントのパッケージ・リスト情報および実行可能 ID リストの両方を収集するには、 次のステートメントを使用すると良いでしょう。
ALTER WORKLOAD REPORTS COLLECT UNIT OF WORK DATA BASE INCLUDE PACKAGE LIST,
 EXECUTABLE LIST
表 1 に示されている設定は、CREATE WORKLOAD または ALTER WORKLOAD ステートメントを使用して特定のワークロードの設定をオーバーライドしない限り、システムで実行されているすべてのワークロードに適用されます。 すべてのワークロードに関する基本的なレベルの情報と、特定のワークロードに関するパッケージ・リスト情報を収集する場合は、mon_uow_data データベース構成パラメーターに BASE を設定します。 そして、問題のワークロードに対して CREATE WORKLOAD または ALTER WORKLOAD ステートメントを使用して、 レベルを BASE PACKAGE LIST に設定します。
デフォルトでは、作業単位イベント・モニターなどの、該当する表関数およびイベント・モニターは、 要求メトリックを収集して報告します。 このデフォルト設定は、以下のようにして変更できます。
  • mon_req_metrics デーベース構成パラメーターを使用する
  • サービス・スーパークラスの CREATE SERVICE CLASS または ALTER SERVICE CLASS ステートメントで COLLECT REQUEST METRICS 節を使用する。
デフォルトの設定を変更すると、要求メトリックを報告するすべての表関数またはイベント・モニターに影響を与えます。

作業単位イベント・モニターによりキャプチャーされたイベント・データへのアクセス

作業単位イベント・モニターは、 通常の表にデータを書き込むことも、 未フォーマット・イベント (UE) 表にバイナリー・フォーマットのデータを書き込むこともできます。 通常の表のデータには SQL を使用してアクセスできます。

UE 表のデータにアクセスするには、 次のいずれかの表関数を使用します。
EVMON_FORMAT_UE_TO_XML
未フォーマット・イベント表から XML 文書にデータを抽出します。
EVMON_FORMAT_UE_TO_TABLES
未フォーマット・イベント表から一連のリレーショナル表にデータを抽出します。
これらの表関数のいずれかを使用する場合、 関数のパラメーターの 1 つとして SELECT ステートメントを含めることによって、 どのデータを抽出するかを指定できます。 SELECT ステートメントにより提供される選択、順序付け、その他の面についてはすべて制御できます。

パッケージ・リスト情報を生成している場合、EVMON_FORMAT_UE_TO_XML 表関数を使用すると、 基本的な作業単位イベント・モニター・データとパッケージ・リストの両方を含む 1 つの XML 文書を生成できます。 EVMON_FORMAT_UE_TO_TABLES プロシージャーは、基本的な作業単位イベント・モニター情報用に 1 つ、およびパッケージ・リスト情報用にもう 1 つ、合計 2 つの表を生成します。 この 2 つの表は、MEMBER、APPLICATION_ID および UOW_ID 列の値を使用して結合することができます。

db2evmonfmt コマンドを使用して、以下のタスクの実行に役立てることもできます。
  • イベント ID、イベント・タイプ、時間枠、アプリケーション、ワークロード、またはサービス・クラスの各属性に基づいて、関心対象のイベントを選択します
  • テキスト・レポートまたはフォーマット済み XML 文書のどちらの形式で出力を受け取るかを選択します
  • db2evmonfmt コマンドに提供されているものを使用する代わりに、独自の XSLT スタイル・シートを作成して、出力形式を制御します
例えば、 以下のコマンドは、データベース SAMPLE で過去 24 時間に発生した作業単位イベントを抜粋した 作業単位レポートを生成します。 これらのイベント・レコードは、SAMPLE_UOW_EVENTS という未フォーマット・イベント表から取得します。 このコマンドは、MyUOW.xsl スタイル・シートを使用してフォーマットしたテキスト出力を作成します。
java db2evmonfmt -d SAMPLE -ue SAMPLE_UOW_EVENTS -ftext -ss MyUOW.xsl -hours 24