MAX_LOCKS_PER_TABLESPACE 組み込みグローバル変数

MAX_LOCKS_PER_TABLESPACEというグローバル変数には、アプリケーションがテーブルスペースで同時に保持できるページ、行、またはLOBロックのデフォルトの最大数を指定する大きな整数値が格納されています。

スレッドがこの限界に達しても、失敗することはない。 その代わりに、スレッドは個々の行ロックの獲得を停止し、ロック・エスカレーションにより、既存の子ロックがパーティション全体または表スペース全体のグロス・ロックに変換されます。 また、ロックのエスカレーションは、 Db2 、状況を報告するメッセージを発行することなく発生する。

このフィールドに指定する値は、MAX_LOCKS_PER_USER 組み込みグローバル変数の値より小さくなければなりません (MAX_LOCKS_PER_USER が 0 に設定されている場合を除く)。

MAX_LOCKS_PER_TABLESPACE変数には、以下の特性があります
  • ユーザーによって保守される値で更新可能です。
  • タイプは BIGINT です。
  • スキーマは SYSIBMADM です。
  • このグローバル変数の有効範囲はセッションです。
  • デフォルト値は、アプリケーションの開始時の NUMLKTS サブシステム・パラメーターから決定されます。 その後 NUMLKTS サブシステム・パラメーターを変更しても、MAX_LOCKS_PER_TABLESPACE の値には影響しません。 以下のいずれかの SET 割り当てステートメントを使用して、NUMLKTS サブシステム・パラメーターの現行値を使用して MAX_LOCKS_PER_TABLESPACE を再初期化することができます。
    SET SYSIBMADM.MAX_LOCKS_PER_TABLESPACE = DEFAULT;
    SET SYSIBMADM.MAX_LOCKS_PER_TABLESPACE = NULL;
  • 値の許容範囲は0~104857600です