演習 7: 継続中のアクティビティーの取り消し

この演習では、WLM_CANCEL_ACTIVITY プロシージャーを使用して、現在アクティブなアクティビティーを取り消す方法について説明します。

時間の見積もり: 5 分から 10 分

ステップ 1: 長期実行照会の発行

CLP ウィンドウから、長期実行照会を発行する、以下のスクリプトを実行します。

db2 -tvf longquery.db2

ステップ 2: アプリケーション・ハンドルの取得

別の CLP ウィンドウから、WLM_GET_WORKLOAD_OCCURRENCE_ACTIVITIES を呼び出して、カーソル・アクティビティーのアプリケーション・ハンドル、作業単位 ID、およびアクティビティー ID を取得します。

SELECT T.APPLICATION_HANDLE, T.UOW_ID, T.ACTIVITY_ID, T.ACTIVITY_TYPE
FROM  TABLE(WLM_GET_WORKLOAD_OCCURRENCE_ACTIVITIES
              (CAST(NULL AS BIGINT), -2)) T
      WHERE T.CLIENT_APPLNAME = 'CLP longquery.db2';

その表関数の結果を APPLICATIONS 管理ビューと結合すれば、longquery.db2 内から実行されているカーソル・アクティビティーを確認できます。 出力は、以下のようになります。

APPLICATION_HANDLE   UOW_ID      ACTIVITY_ID ACTIVITY_TYPE
-------------------- ----------- ----------- ----------------------------
----
                 267           1           1 READ_DML                       

  1 record(s) selected.

ステップ 3: アクティビティーの取り消し

同じ CLP ウィンドウから、前のステップで入手したアプリケーション・ハンドル、作業単位 ID、およびアクティビティー ID を使用し、WLM_CANCEL_ACTIVITY ストアード・プロシージャーを呼び出して前述のカーソル・アクティビティーを取り消します。

CONNECT TO SAMPLE

CALL WLM_CANCEL_ACTIVITY (267, 1, 1)

CONNECT RESET

事例ごとにアプリケーション・ハンドル、作業単位 ID、およびアクティビティー ID が違うことに注意してください。

最初の CLP ウィンドウに、longquery.db2 で実行された長時間実行の照会から返される以下の出力が表示されます。

SQL4725N  The activity has been cancelled. SQLSTATE=57014