CONCURRENTDBCOORDACTIVITIES しきい値

CONCURRENTDBCOORDACTIVITIES しきい値は、指定された定義ドメインおよび適用範囲内で同時に実行できる、認識されているコーディネーター・アクティビティーの最大数を指定します。

このタイプのしきい値の使用は、一度に複数のアクティビティーを実行しないアプリケーションに最適です。 アプリケーションが複数のアクティビティーを同時に開始する場合 (例えば、カーソルが開いている間に UPDATE SQL ステートメントを発行するなど)、しきい値によって許容される並行性のレベルや、関係する他のアプリケーションの動作によっては、特定のキュー競合シナリオが発生することがときどきあります。 アプリケーションが複数のアクティビティーを同時に実行できる、またはアプリケーションの動作が不明なシナリオにこのしきい値が存在する場合は、それらのアクティビティーに ACTIVITYTOTALTIME しきい値を定義することをお勧めします。これは、潜在的なキュー競合シナリオを自動的に解決する上で役立ちます。

タイプ
Aggregate
定義ドメイン
データベース、ワーク・アクション、サービス・スーパークラス、サービス・サブクラス
適用範囲
Db2® pureScale® 環境以外の環境のデータベース
Db2 pureScale 環境のメンバー
トラッキングされる作業
認識されるコーディネーター・アクティビティーおよびネストされたアクティビティー ( タイプ、コスト、または作業クラスでアクセスされるデータによる作業識別を参照)
キューイング
はい
単位
並行データベース・アクティビティーの数
予測的か反応的か
予測的
このしきい値は、CONCURRENTWORKLOADACTIVITIES しきい値の汎用化です。 CONCURRENTWORKLOADACTIVITIES はワークロード・ドメインで実行されるアクティビティーにのみ適用されますが、CONCURRENTDBCOORDACTIVITIES しきい値は、データベース全体から単一のワーク・アクションに及ぶさまざまなドメインに適用することができます。 CONCURRENTDBCOORDACTIVITIES しきい値は、非 CALL ステートメント用のコーディネーター・アクティビティーと、CALL ステートメントによって生成されるすべてのネストされたアクティビティーをトラッキングします。 CONCURRENTWORKLOADACTIVITIES しきい値と異なり、CONCURRENTDBCOORDACTIVITIES しきい値はキューイングしきい値です。
注: キューイングしきい値に対して CONTINUE のしきい値アクションが指定されている場合、キュー・サイズにハード値が指定されているかどうかに関係なく、キューのサイズは事実上無制限になります。 concurrent_act_top モニター・エレメントを使用して、収集された時間間隔にサービス・サブクラス用のメンバーで到達したアクティビティー (ネストされたアクティビティーを含む) の並行性の最大数を判別することができます。
CONCURRENTDBCOORDACTIVITIES タイプのキューイングしきい値を作成する場合は、キューによる解決できない競合が発生しかねない構成に注意してください。 以下に例を示します。
  1. タイプ CONCURRENTDBCOORDACTIVITIES の並行性しきい値が作成されます。最大並行値は 1、キュー・サイズは 2 以上です。
  2. アプリケーションは、Db2 データ・サーバーがアクティビティー A1 と認識するカーソルを開きます。これによって、しきい値に使用できるユニークなチケットが消費されます。
  3. カーソルがオープンである間に、アプリケーションは UPDATE ステートメントを発行します。これをデータ・サーバーはアクティビティー A2 と認識します。このアクティビティーも、並行性しきい値の影響を受けます。 A1 アクティビティーが既に実行中であるため、新規のアクティビティー A2 はキューに入れられます。

    アプリケーションは、解決できないキュー競合の状態になっています。 アプリケーションは A2 が実行するまで待機しますが、A2 は A1 の実行が終了するまで待機しています。 この状況は、ACTIVITYTOTALTIME しきい値もそれらのアクティビティーに対して定義されていない限り、外部からの介入なしには解決しません。 ACTIVITYTOTALTIME しきい値が定義されている場合、データ・サーバーがアクティビティー A1 の処理に費やす時間の上限を超えることによって A1 がそのしきい値に違反したときに、この状況は解決されます。

この例は、複数のアプリケーションとキューの場合にも一般化して考えられます。 この状況は、並行値を大きくするか、または並行値が適正に設定されている場合は一部のアクティビティーをキャンセルすることによって解決します。

解決できないキュー競合のシナリオを作成してしまう可能性を減らすために、 CONCURRENTDBCOORDACTIVITIES しきい値は以下のようにさまざまなタイプのアクティビティーに影響を与えます。
  • CALL ステートメントはしきい値の管理を受けませんが、ネストされたすべての子アクティビティーはしきい値の管理下にあります。 無名ブロックと自律型ルーチンは、CALL ステートメントに分類されることに注意してください。
  • ユーザー定義関数 (UDF) はしきい値の制御を受けますが、UDF 内にネストされた子アクティビティーは制御されません。 自律型ルーチンがユーザー定義関数から呼び出される場合、自律型ルーチンと、その自律型ルーチンの子アクティビティーはどちらもしきい値の制御下に置かれません。
  • CALL ステートメントを呼び出すトリガー・アクション、およびそれらの CALL ステートメントの子アクティビティーは、しきい値の管理下にありません。 トリガーをアクティブ化する可能性がある INSERT、UPDATE、および DELETE ステートメント自体はしきい値の制御を受けることに注意してください。