IBM DB2 クエリー・パトローラー 管理の手引き

ジョブの処理方法

このセクションでは、DB2 クエリー・パトローラーに照会が実行依頼されたときから、 ジョブ完了の通知を受け取るまでのジョブの処理を説明します。

  1. ジョブの実行依頼

    照会は一般的には、照会アプリケーションを介して実行依頼されるか、 または動的に DB2 インターフェースを介して実行依頼されます。 ジョブは、QueryMonitor およびコマンド行インターフェースを介して実行依頼することもできます。 ジョブを実行依頼するときには、DB2 クエリー・パトローラー構成要素が、SQL ステートメント、 ユーザー ID、スケジュールされたジョブの実行日時、許される最大コスト、 およびコスト管理しきい値を保管します。 コスト管理しきい値パラメーターは、 ユーザーが介入できるように QueryEnabler ツールによって照会が代行受信されるかどうかを判別します。 最大コストおよびコスト管理しきい値パラメーターは、 それぞれのユーザーまたはグループ・プロファイルに、 QueryAdministrator ツールのユーザー管理ページを使用して定義されます。

  2. コスト分析

    ユーザーがジョブを DB2 クエリー・パトローラーに実行依頼した後は、 DB2 からのコスト見積もりを使用して、 サーバー構成要素が照会を実行するためのコストを見積もります。 DB2 のコスト見積もりの詳細については、 DB2 管理の手引き を参照してください。



    ヒント

    DB2 クエリー・パトローラーは、 照会のためのコスト分析を実行する直前にカスタマー作成の出口プログラムを起動できます。 出口プログラムは SQL ステートメントを調べ、 DB2 クエリー・パトローラーがステートメントを実行できないようにすることができます。 詳細については、出口分析を参照してください。

    ジョブのコストは、実行依頼しているユーザーのプロファイルから得た、 最大コストおよびコスト管理しきい値パラメーターに対して測られます。 計算されたコストが最大コストより大きい場合には、ジョブは保留になります。 コスト管理しきい値パラメーターは、 ユーザーが介入できるように QueryEnabler ツールによって照会が代行受信されるかどうかを判別します。

    ジョブがコスト管理しきい値を超えない場合、照会は代行受信されず、直ちに実行されます。 ジョブがコスト管理しきい値を超え、最大コストを超えない場合、 ユーザーが介入できるように照会は QueryEnabler ツールによって代行受信され、 スケジュールされた日時が過ぎて、十分なシステム・リソースが利用可能になると、 ジョブは直ちに実行されます。

    ジョブが保留状態の場合には、DB2 クエリー・パトローラーのシステム管理者またはオペレーターが、 そのジョブを保留解除またはキャンセルしなければなりません。 コマンド行インターフェースを介して実行依頼されるジョブについては、 分離されたステップとしてではなく、ジョブ実行依頼の一部としてコスト分析が実行されます。

  3. ジョブ・スケジュール

    サーバー構成要素のジョブ・スケジューラーは、 定期的に活動化し、実行すべき新しいジョブについて走査します。 実行する準備のできているジョブは、優先順位に従って処理されます。 優先順位の等しいジョブは、実行依頼された順序で処理されます。

    ジョブを実行できるかどうかを判別するには、スケジューラーは、すでに実行中の照会の数が、 ユーザー・プロファイルで設定されている限度に達したかどうかを調べます。 スケジューラーは、実行中の照会の合計数、 または新しいジョブのコストと実行中のジョブの合計コストの和が、 データ・ソースおよびシステムに設定されている限度に達したかどうかも調べます。 次に、ジョブのコストに基づいて、スケジューラーは関連するジョブ待ち行列を検査し、 その待ち行列のジョブの数の限度を判別します。

    システム限界のためにジョブをスケジュールできない場合には、 スケジューラーは、そのジョブをう回し、次に準備ができているジョブを処理します。 スケジューラーは、次回に活動化するときに、 スケジューリング循環でスキップされたジョブを処理します。

    ジョブをスケジュールできる場合、 実行用にそれを DB2 クエリー・パトローラー・ノードに割り当てなければなりません。 ジョブ・スケジューラーは、データ・ソースに設定された限界、 およびノード・マネージャーにより収集される CPU やディスクの使用率統計に基づいて、 ノードを選択します。 選択されるノードは、割り当てられているジョブの数が最も少ないものです。 同数のジョブを実行しているノードが複数ある場合には、 ジョブ・スケジューラーは、CPU 使用率の最も低いノードを選択します。

  4. ジョブ実行

    それぞれのエージェントのノード・マネージャーは、定期的に活動化して、 そのノードで実行するようにスケジュールされている新しいジョブを走査します。 ノード・マネージャーは、新しいジョブごとに、 実行プログラムを実行する新しいプロセスを作成します。 通常、SQL ステートメントを含むジョブの場合、実行プログラム構成要素は、 カーソルをオープンして、結果行を取り出します。 ジョブが完了するごとに、実行プログラム構成要素は、 完了状況および実行統計をサーバー構成要素に戻して、ジョブ表に記録されるようにします。

    ノードに新しくスケジュールされたジョブを実行するのに加えて、 ノード・マネージャーが活動化するたびに、 CPU およびディスク使用率の統計も収集し、 取り消されるジョブまたは打ち切られたジョブを検査します。 ジョブは、スケジュールされるまでは、実行依頼をいつでも取り消すことができます。 ジョブが取り消されると、実行中のジョブに対するデータベース接続は除去されます。

  5. 通知

    サーバー構成要素の通知プログラムは定期的に活動化され、 正常に実行が完了したジョブや失敗したジョブ、また保留状況のジョブを走査します。 この構成要素は、これらのイベントをユーザーに電子メールで通知し、 ジョブ会計情報がアクティブのときに、 それぞれの完了したジョブについて 1 行ずつジョブ会計表に追加します。 通知プログラム構成要素は、有効期限が切れたジョブ表のエントリーや結果表も除去します。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]