RECORD_LOCK_INFO ビュー

RECORD_LOCK_INFO ビューは、区画のすべてのレコード・ロックに対して 1 行を返します。

このビューの列に返される値は、Retrieve Record Locks API で返される値に密接に関連しています。 詳しくは、API を参照してください。

このビューを照会する際には、システム資源の過剰使用を回避するために、WHERE 節を使用して結果セットを制限する必要があります。

次の表は、ビューの列について説明しています。 システム名は RCD_LOCK です。スキーマは QSYS2 です。

表 1. RECORD_LOCK_INFO ビュー
列名 システム列名 データ・タイプ 説明
TABLE_SCHEMA TABSCHEMA VARCHAR(128) スキーマの名前。
TABLE_NAME TABNAME VARCHAR(128) テーブルの名前。
TABLE_PARTITION TABPART VARCHAR(128) ロックされたレコードが入っている表パーティションまたはメンバーの名前。
SYSTEM_TABLE_SCHEMA SYS_DNAME VARCHAR(10) スキーマのシステム名
SYSTEM_TABLE_NAME SYS_TNAME VARCHAR(10) 表のシステム名
SYSTEM_TABLE_MEMBER SYS_MNAME VARCHAR(10) ロックされたレコードが入っているメンバーの名前。
RELATIVE_RECORD_NUMBER RRN BIGINT ロックされたレコードの相対レコード番号 (RRN)。
LOCK_STATE LOCK_STATE VARCHAR(8) レコードのロック条件。
READ
レコードは読み取りの目的でロックされています。別のジョブが同じレコードを読み取ることができますが、更新の目的でそのレコードをロックできません。このレコードに対して読み取りロックを保持しているジョブがあるかぎり、その他のジョブがこのレコードを変更することはできません。
UPDATE
レコードは更新の目的でロックされています。別のジョブがこのレコードを読み取ることはできますが、ロックが解放されるまでは、レコードに対して読み取りまたは更新ロックを取得することはできません。
INTERNAL
この行は読み取り用に内部的にロックされています。少しの間、オペレーティング・システムが行にアクセスするための内部ロックを保持しています。別のジョブが同じ行を読み取ること、さらにはその行を更新の目的でロックすることができます。ただし、別のジョブが更新の目的で行をロックしていても、内部ロックが解放されるまでその行の実際の変更は続行されません。
LOCK_STATUS STATUS VARCHAR(9) ロックの状況。
HELD
ロックは現在ジョブによって保留されています。
WAITING
ジョブはロックの待機中です。
LOCK_SCOPE LOCK_SCOPE VARCHAR(10) ロックの有効範囲。値は次の通りです。
  • JOB
  • THREAD
  • LOCK SPACE
JOB_NAME JOB_NAME VARCHAR(28) ジョブの修飾名。
THREAD_ID THREAD_ID BIGINT

NULL 可能

ロックに関連したスレッド。
  • 保持されているロックの有効範囲がジョブである場合は、NULL 値を戻します。保留されているロックの有効範囲がスレッドである場合には,ロックを保留しているスレッドのIDが示されます。
  • ロックの有効範囲がロック・スペースに対するものであり,そのロックが保留されていない場合には,ロックを要求しているスレッドのIDが入っています。
  • ロックが要求されているが,まだ使用可能でない場合には,ロックを要求しているスレッドのIDが示されます。
LOCK_SPACE_ID LOCKID BINARY(20)

NULL 可能

LOCK_SCOPE 列の値が LOCK SPACE で、ロックがスレッドによって待機されている場合、ロックが待機されているロック・スペース ID 値が入ります。

それ以外の場合は、NULL 値が入ります。

SALES テーブルを更新しているジョブを確認します。

SELECT JOB_NAME, COUNT(*) AS ROWS_UPDATING
  FROM QSYS2.RECORD_LOCK_INFO
  WHERE FILE_NAME = 'SALES' AND
        LIBRARY_NAME = 'TOYSTORE' AND
        LOCK_STATE = 'UPDATE'
  GROUP BY JOB_NAME
  ORDER BY ROWS_UPDATING DESC