物理ファイル(テーブル)や画面ファイルの更新/コンパイルを行おうとして、別のユーザや実行中のJOBにロックされていて おんぎゃぁぁ となる事はありませんか?
私はよくあります。
誰だロックしているヤツはとぼやきながら、このSQLを実行しましょう
直ぐに 犯人 ロックしているJOB がわかります。
用意する物
IBM i
IBM i AccessClientSolutions (ACS) の SQLスクリプトの実行
もしくは 5250端末で STRSQL
オブジェクトロック情報一覧を取得
WITH LOCK_CONFLICT_TABLE (object_name, lock_state, q_job_name) AS (
SELECT object_name, lock_state, job_name
FROM QSYS2.OBJECT_LOCK_INFO
where
object_schema = 'ライブラリ/スキーマ名'
and object_name LIKE 'オブジェクト名'
)
SELECT OBJECT_NAME
, LOCK_STATE
, Q_JOB_NAME
, V_SBS_NAME
, V_JOB_STATUS
, V_ACTIVE_JOB_STATUS
, V_ACTIVE_JOB_TYPE
FROM LOCK_CONFLICT_TABLE
, TABLE(QSYS2.GET_JOB_INFO(q_job_name)) B;