実績反応による SQL ステートメントのリソースの制限

リソース限定機能を使用して、反応的統治に制限を設定することができます。これは、Db2が、システム・リソースを過剰に使用する指定されたコンテキストから、SQLステートメントを停止することを意味します。

始める前に

制限したい SQL 文の種類に応じて、RLFENABLE サブシステムパラメータを適切な値に設定します。

このタスクについて

実績反応管理 を指定すると、SQL ステートメントがリソース限定表の行にある ASUTIME 列の値によって指定されたリソース最大量を超えて使用する場合、その行の条件を満たす現在実行中の SQL ステートメントがリソース限定機能により停止されます。 ステートメントが対応管理制限を超えると、アプリケーション・プログラムは SQLCODE -905 を受け取ります。 アプリケーションには、この状態に基づいて適切なアクションを実行するコードが組み込まれている必要があります。

リソース限定は次のタイプの SQL ステートメントにのみ適用されます。

  • SELECT
  • INSERT
  • UPDATE
  • MERGE
  • TRUNCATE
  • DELETE
動的SQL文と静的SQL文に対してリソース制限を指定することができます。

外部ユーザー定義関数を含むステートメントの場合、ユーザー定義関数によって使用されるリソース時間は、ステートメントのリソース時間の一部としてはカウントされません。 インストール SYSADM 権限またはインストール SYSOPR 権限を持つ 1 次許可 ID または 2 次許可 ID には制限は適用されません。

プロシージャー

実績反応リソース限界値を指定するには、次のようにします。

リソース限定表の RLFFUNC 列に、以下の値のいずれかを指定します。
'2'
パッケージ名、許可 ID、コレクション ID、リクエスターのロケーション名、またはそれらの組み合わせによる動的 SQL ステートメントの制限 (RLST)
'8'
クライアント情報による動的 SQL ステートメントの制限 (RLMT)
A
パッケージ名による静的 SQL ステートメントの制限 (RLST)
'B'
クライアント情報による静的 SQL ステートメントの制限 (RLMT)

結果

Db2 以下のイベントで累積されたASUTIMEをリセットします

  • カーソルを使用しないステートメントの実行が完了した後。
  • ステートメントのカーソルのクローズ後。
  • 動的ステートメントの PREPARE 中。

リソース限定表で設定した限界に達した、またはその限界を超えたステートメントは、SQLCODE -905 および対応する SQLSTATE '57014' で終了します。 すべてのユーザーに単一の限界値を設定したり、 個別のユーザーに異なる限界値を設定したり、あるいはその両方を行うことができます。 インストール SYSADM またはインストール SYSOPR 権限をもつ 1 次許可 ID または 2 次許可 ID には、この限界値は適用されません。 リモートサイトから Db2 に送信された問い合わせについては、ローカルサイトの制限が適用されます。

失敗したステートメントに SQL カーソルが含まれていると、 そのカーソル位置はそのまま変更されません。 アプリケーションはその後、そのカーソルをクローズする ことができます。 そのカーソルを使用する他の操作はいずれも実行されず、 同じ SQL エラー・コードが戻されます。

失敗した SQL ステートメントにカーソルが含まれていない場合は、 そのステートメントで行われたすべての変更が取り消され、その後で エラー・コードがアプリケーションに戻されます。 アプリケーションは別の SQL ステートメントを出すことも、 それまでに行われた作業全体をコミットすることもできます。

次の作業

リソース制限テーブルにアクセスできない場合、または一致するリソース制限テーブル行が存在しない場合に適用されるデフォルトのリソース制限を設定することを検討してください。 デフォルトのリソース制限の作成の詳細については、 「SQL ステートメントのデフォルトのリソース制限の設定」を参照してください。