3.13.3 排他/共用制御による実行待ち状態の確認方法
- 〈この項の構成〉
(1) ファイルまたはディレクトリがロック確保待ちとなり,ジョブが実行待ち状態の場合
同一サーバ内で実行されるバッチジョブ実行システムから起動した複数のジョブが,DD要素で指定したファイルおよびディレクトリの割り当て要求を行い,「表3-25 排他/共用要求によるジョブの状態」で示す「後続ジョブはロック確保待ち」の状態となった場合,次に示すKAKC1650-Wメッセージを出力する。
-
stderrおよびJOBLOGに出力されるメッセージ
KAKC1650-W Waiting for locking a file.
-
JP1イベント発行によってJP1イベントコンソールに出力されるメッセージ
KAKC1650-W ロック確保待ちが発生しました
また,ロック確保待ちが発生し,ロック確保待ちが解除された場合,次に示すKAKC1651-Iメッセージを出力する。
-
stderrおよびJOBLOGに出力されるメッセージ
KAKC1651-I Quit waiting for locking a file.
-
JP1イベント発行によってJP1イベントコンソールに出力されるメッセージ
KAKC1651-I ロック確保待ちは解除されました
ロック確保待ちが長時間解除されない,またはロック確保待ちが多発する場合,ロックの競合を起こしているジョブおよびロックの情報を表示させることができる。
ロック確保状態ジョブとロック確保待ちジョブを表示するコマンドの指定例,および表示例を次に示す。
$ bjexlslock JOBID STATUS ELAPSED PID JP1JobID JOBNAME ------ ------ -------- ---------- ---------- ------------------------------- 000001 LOCK 00:10:16 21614 1001 JOB0001 000002 WAIT 00:05:09 42802 1002 JOB0002
上記で表示されたジョブ(JOB0001およびJOB0002)の資源確保状態を表示させる場合の表示コマンドの指定例,および表示例を次に示す。
$ bjexlslock -j 2 JOBID STATUS ELAPSED PID JP1JobID JOBNAME ------ ------ -------- ---------- ---------- ------------------------------- 000002 WAIT 00:05:09 42802 1002 JOB0002 MODE STATUS LOCKJOB TYPE FILEPATH ---- ------ -------- ----- ------------------------------- EXC WAIT 000001 FILE /opt/hitachi/bjex/bin/public/A
表示例のジョブ(JOB0001)が長時間ロック確保状態となっている場合,後続ジョブのロック確保待ちを解除し実行させる必要がある。この場合,ロック確保状態のジョブが処理を続行しロック解放を待つか,またはロック確保状態のジョブをキャンセルする必要がある。
同一資源に対するロック確保待ちが多発する場合,センタ管理者は同一資源を割り当てるジョブの実行計画を見直す必要がある。ロック確保待ち時間は,実行待ちが発生したジョブが出力したKAKC1650-WとKAKC1651-Iメッセージの出力時間の差から求められる。
(2) ジョブ多重度によるジョブ実行待ち状態の場合
同一サーバ内で実行されるバッチジョブ実行システムから起動した複数のジョブで,ジョブ多重度制御によって実行待ち状態となった場合,次に示すKAKC1652-Wメッセージを出力する。
-
stderrおよびJOBLOGに出力されるメッセージ
KAKC1652-W Waiting for locking a semaphore.
-
JP1イベント発行によってJP1イベントコンソールに出力されるメッセージ
KAKC1652-W ジョブ実行待ちが発生しました
実行待ちが発生し,実行待ちが解除された場合,次に示すKAKC1653-Iメッセージを出力する。
-
stderrおよびJOBLOGに出力されるメッセージ
KAKC1653-I Quit waiting for locking a semaphore.
-
JP1イベント発行によってJP1イベントコンソールに出力されるメッセージ
KAKC1653-I ジョブ実行待ちは解除されました
(3) 排他資源管理テーブルの空き待ちとなり,ジョブが実行待ち状態の場合
ロック獲得中またはロック待ち中のファイル合計数が,設定ファイルのLOCK_MAXFILEで指定したファイル数を超えたことによって,排他資源管理テーブルの空き待ちが発生した場合,次に示すKAKC1654-Wメッセージを出力する。
-
stderrおよびJOBLOGに出力されるメッセージ
KAKC1654-W Waiting for lock resource control table.
-
JP1イベント発行によってJP1イベントコンソールに出力されるメッセージ
KAKC1654-W 排他資源管理テーブルの空き待ちが発生しました
また,排他資源管理テーブルの空き待ちが発生した後,排他資源管理テーブルの空き待ちが解除された場合,次に示すKAKC1655-Iメッセージを出力する。
-
stderrおよびJOBLOGに出力されるメッセージ
KAKC1655-I Quit waiting for lock resource control table.
-
JP1イベント発行によってJP1イベントコンソールに出力されるメッセージ
KAKC1655-I 排他資源管理テーブルの空き待ちが解除されました
排他資源管理テーブルの空き待ちが発生した場合,排他資源管理テーブルの空き待ちを起こしているジョブの情報を表示させることができる。
排他資源管理テーブルの空き待ちジョブを表示するコマンドの指定例,および表示例を次に示す。
$ bjexlslock JOBID STATUS ELAPSED PID JP1JobID JOBNAME ------ ------ -------- ---------- ---------- -------------------------- 000084 LOCK 00:00:40 17575 JOB0003 000085 WAIT 00:00:32 17578 JOB0004
上記で表示されたジョブ(JOB0003およびJOB0004)の資源確保状態を表示させる場合の表示コマンドの指定例,および表示例を次に示す。
$ bjexlslock -j 000085 JOBID STATUS ELAPSED PID JP1JobID JOBNAME ------ ------ -------- ---------- ---------- -------------------------- 000085 WAIT 00:00:43 17578 JOB0004 MODE STATUS LOCKJOB TYPE FILEPATH ---- ------ -------- ----- ------------------------------- EXC UNLK NONE FILE /opt/hitachi/bjex/bin/public/B EXC UNLK NONE FILE /opt/hitachi/bjex/bin/public/C
表示例のジョブ(JOB0004)が長時間排他資源管理テーブルの空き待ち状態となっている場合,当該ジョブの実行を待つか,当該ジョブを強制終了する必要がある。
排他資源管理テーブルに対する空き待ちが多発する場合,センタ管理者は設定ファイルLOCK_MAXFILEで指定した排他資源管理テーブルのエントリ数を見直す必要がある。