しきい値違反のモニター

Db2® ワークロード・マネージャーのしきい値に違反すると、アクティブな THRESHOLD VIOLATIONS イベント・モニターが存在する場合は、そのイベント・モニターにしきい値違反レコードが書き込まれます。

このタスクについて

しきい値違反レコードには、以下の情報が含まれます。
  • 違反のあったしきい値の説明 (ID、最大値、など)。
  • しきい値に違反したアクティビティーの ID。これには、そのアクティビティーをサブミットしたアプリケーションの ID、アクティビティーの固有 ID、および作業単位 ID が含まれます。
  • しきい値の違反が生じた時刻。
  • 取られた処置。 この処置は、しきい値に違反したアクティビティーが続行を許可されたか、または停止されたかを示します。 アクティビティーが停止された場合は、そのアクティビティーをサブミットしたアプリケーションは SQL4712N エラーを受け取ることになります。

REMAP ACTIVITY アクション が定義されているしきい値に対してしきい値違反が発生した場合、しきい値違反レコードはオプションです。 しきい値違反レコードが記録されるかどうかは、CREATE THRESHOLD ステートメントの NO EVENT MONITOR RECORD または LOG EVENT MONITOR RECORD 節によって決まります。

オプションで、アクティビティーによってしきい値違反が起こった場合に、詳細なアクティビティー情報 (ステートメント・テキストを含む) がアクティブなアクティビティー・イベント・モニターに書き込まれるようにすることができます。 アクティビティー情報は、しきい値の違反が生じたときではなく、アクティビティーの完了時に書き込まれます。 しきい値の違反時にアクティビティー情報を収集するように指定するには、COLLECT ACTIVITY DATA キーワードを CREATE または ALTER しきい値またはワーク・アクション・セットのステートメントで使用します。

プロシージャー

しきい値の違反をモニターするには、以下のようにします。

  1. CREATE EVENT MONITOR ステートメントを使用して、タイプが THRESHOLD VIOLATIONS であるイベント・モニターを作成します。
    以下に例を示します。
    CREATE EVENT MONITOR VIOLATIONS FOR THRESHOLD VIOLATIONS WRITE TO TABLE
  2. COMMIT ステートメントを使用して、変更をコミットします。
  3. SET EVENT MONITOR STATE ステートメントを使用して、イベント・モニターを活動化します。
    SET EVENT MONITOR STATE ステートメントを使用せずに、THRESHOLD VIOLATIONS イベント・モニターに AUTOSTART のデフォルトを使用して、データベースが次回活動化されたときにこのイベント・モニターが活動化されるようにする方法もあります。 複数の THRESHOLD VIOLATIONS イベント・モニターを定義する場合は、AUTOSTART オプションを使用しないでください。
  4. COMMIT ステートメントを使用して、変更をコミットします。
    注: しきい値を作成する場合は、発生したしきい値違反をモニターできるように、しきい値違反イベント・モニターを作成してアクティブにする必要があります。 しきい値違反イベント・モニターが与える影響は、しきい値違反が生じない限り、全くありません。

この例は、 REMAP ACTIVITY アクションが含まれていたしきい値違反の結果として どのアクティビティーでどの再マップが発生したかを判別する方法を示しています。 再マップされたアクティビティーを見つけるには、次のようなステートメントを使用します。

SELECT VARCHAR(APPL_ID, 30) AS APPLID,
   UOW_ID,
   ACTIVITY_ID,
   VARCHAR(T.PARENTSERVICECLASSNAME,20) AS SERVICE_SUPERCLASS,
   VARCHAR(T.SERVICECLASSNAME,20) AS FROM_SERVICE_SUBCLASS,
   VARCHAR(S.SERVICECLASSNAME,20) AS TO_SERVICE_SUBCLASS
FROM THRESHOLDVIOLATIONS_TH1,
   SYSCAT.SERVICECLASSES AS T,
   SYSCAT.SERVICECLASSES AS S
WHERE SOURCE_SERVICE_CLASS_ID = T.SERVICECLASSID AND
      DESTINATION_SERVICE_CLASS_ID = S.SERVICECLASSID AND
      THRESHOLD_ACTION = 'REMAP'
ORDER BY APPLID, ACTIVITY_ID, UOW_ID, TIME_OF_VIOLATION ASC;

この例では、アクティビティー ID 1 および作業単位 (UOW) ID 1 で識別される ID *N0.swalkty.080613140844 のアプリケーションによってサブミットされたアクティビティーで 2 度の再マップが発生しました。

APPLID                         UOW_ID      ACTIVITY_ID          SERVICE_SUPERCLASS   FROM_SERVICE_SUBCLASS TO_SERVICE_SUBCLASS
------------------------------ ----------- -------------------- -------------------- --------------------- --------------------
*N0.swalkty.080613140844                 1                    1 WORK                 HIGH                  MED
*N0.swalkty.080613140844                 1                    1 WORK                 MED                   LOW

  2 record(s) selected.

出力は、しきい値違反の時刻によって配列されており、アクティビティーが実行を開始した後、2 度の再マップが発生したことを示しています。 出力には表示されませんが、アクティビティーがマップされた初期サービス・サブクラスは、高優先度のサービス・サブクラスである可能性があります。これは、より短時間で実行される照会をより迅速に完了できるようにする 3 層構成 の典型的なサービス・サブクラスです。 アクティビティーは高優先順位のサービス・サブクラスとしての妥当な時間に完了しなかったため、 しきい値違反となり、中優先順位のサービス・サブクラスに再マップされました。その後 2 度目のしきい値違反となり、再び再マップが発生し、低優先順位のサービス・サブクラスに再マップされました。