IBM Support

[Db2] しきい値を利用して長時間実行中または CPU 時間の多い SQL、長期間コミットしていないトランザクションなどを停止する方法.

How To


Summary

Db2 のワークロード・マネジャー (WLM) を利用すると、ユーザーが定義したしきい値に違反した処理を停止したり切断できます。
この文書ではしきい値を有効にして違反した処理を停止する方法と、しきい値違反に抵触した処理をモニターする方法を例示します。

Steps

注: 以下の手順はデータベースに DBADM または WLMADM 権限を持つユーザーで接続して実行します。
DBADM または WLMADM 権限を持つユーザーまたはグループは以下の SQL で一覧できます。
db2 "select grantee, granteetype from syscat.dbauth where dbadmauth='Y' or wlmadmauth='Y'"
 
  • しきい値の設定方法
    1. 対象データベースに DBADM または WLMADM で接続します。
      $ db2 connect to <db_name>
    2. 指定したアクティビティーを制限するためにワークロードとしきい値を作成します。
      以下の例では、アプリケーション "db2bp" の接続をワークロード WL1 にマップし、このワークロードのトランザクション (UOWTOTALTIME) が 1 分を超過すると停止するしきい値 STOPUOW1M を作成しています。
      $ db2 "CREATE WORKLOAD WL1 APPLNAME('db2bp')"
      $ db2 "CREATE THRESHOLD STOPUOW1M FOR WORKLOAD WL1 WHEN UOWTOTALTIME > 1 MINUTES STOP EXECUTION"
      上の例ではワークロードに対してしきい値を設定していますが、しきい値は以下のドメインに定義できます。
      1. DATABASE
      2. SERVICE CLASS
      3. STATEMEMENT
      4. WORKLOAD
      上の例ではトランザクション時間をしきい値として指定していますが、以下のようなしきい値も設定できます
      1. CONNECTIONIDLETIME
      2. ACTIVITYTOTALTIME
      3. UOWTOTALTIME
      4. CPUTIME
        詳細は CREATE THRESHOLD ステートメント を参照してください。
    3. (オプション) しきい値違反の履歴を記録する場合、しきい値イベントモニターを作成します。
      $ db2 CREATE EVENT MONITOR VIOLATIONS FOR THRESHOLD VIOLATIONS WRITE TO TABLE
      $ db2 SET EVENT MONITOR VIOLATIONS STATE 1
      注:CREATE EVENT MONITOR ステートメントを実行すると、イベントを記録するために THRESHOLDVIOLATIONS_<evmonname> イベント表が作成されます。
  • しきい値に違反した結果
    上で設定したしきい値に違反した場合、SQL4712N で処理は中止されます。
    $ db2 +c "update T1 set C2='A' where C1=1"
    DB20000I  The SQL command completed successfully.
    <pause over 1 minute>
    $ db2 commit
    SQL4712N  The activity or request was stopped because the threshold
    "STOPUOW1M" has been exceeded. Reason code: "16".  SQLSTATE=5U026
  • しきい値違反の確認方法
    しきい値違反はしきい値違反イベント・モニターに記録されます。以下のような照会でしきい値違反のイベントを一覧できます。
    1. 対象データベースに DBADM または WLMADM で接続します。
    2. しきい値違反イベント表を照会します。
      $ db2 "select V.TIME_OF_VIOLATION,char(T.THRESHOLDNAME,20)THRESHOLDNAME,char(V.APPLICATION_NAME,10)APPLICATION_NAME,char(V.APPL_ID,30)APPL_ID from THRESHOLDVIOLATIONS_VIOLATIONS V, SYSCAT.THRESHOLDS T where V.THRESHOLDID=T.THRESHOLDID"
      
      TIME_OF_VIOLATION          THRESHOLDNAME        APPLICATION_NAME APPL_ID
      -------------------------- -------------------- ---------------- ------------------------------
      2023-03-15-17.47.56.000000 STOPUOW1M            db2bp            *LOCAL.db2inst1.230316002638
      
        1 record(s) selected.
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m0z000000cvk7AAA","label":"WLM"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"10.1.0;10.5.0;11.1.0;11.5.0;9.7.0"}]

Document Information

Modified date:
15 August 2023

UID

ibm17007697