実績反応による SQL ステートメントのリソースの制限
リソース限定機能を使用して、反応的統治に制限を設定することができます。これは、Db2が、システム・リソースを過剰に使用する指定されたコンテキストから、SQLステートメントを停止することを意味します。
始める前に
このタスクについて
実績反応管理 を指定すると、SQL ステートメントがリソース限定表の行にある ASUTIME 列の値によって指定されたリソース最大量を超えて使用する場合、その行の条件を満たす現在実行中の SQL ステートメントがリソース限定機能により停止されます。 ステートメントが対応管理制限を超えると、アプリケーション・プログラムは SQLCODE -905 を受け取ります。 アプリケーションには、この状態に基づいて適切なアクションを実行するコードが組み込まれている必要があります。
リソース限定は次のタイプの SQL ステートメントにのみ適用されます。
- SELECT
- INSERT
- UPDATE
- MERGE
- TRUNCATE
- DELETE
外部ユーザー定義関数を含むステートメントの場合、ユーザー定義関数によって使用されるリソース時間は、ステートメントのリソース時間の一部としてはカウントされません。 インストール SYSADM 権限またはインストール SYSOPR 権限を持つ 1 次許可 ID または 2 次許可 ID には制限は適用されません。
プロシージャー
実績反応リソース限界値を指定するには、次のようにします。
- '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 ステートメントを出すことも、 それまでに行われた作業全体をコミットすることもできます。