Hitachi

uCosminexus Batch Job Execution Server 使用の手引


3.13.3 排他/共用制御による実行待ち状態の確認方法

〈この項の構成〉

(1) ファイルまたはディレクトリがロック確保待ちとなり,ジョブが実行待ち状態の場合

同一サーバ内で実行されるバッチジョブ実行システムから起動した複数のジョブが,DD要素で指定したファイルおよびディレクトリの割り当て要求を行い,「表3-25 排他/共用要求によるジョブの状態」で示す「後続ジョブはロック確保待ち」の状態となった場合,次に示すKAKC1650-Wメッセージを出力する。

また,ロック確保待ちが発生し,ロック確保待ちが解除された場合,次に示す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メッセージを出力する。

実行待ちが発生し,実行待ちが解除された場合,次に示すKAKC1653-Iメッセージを出力する。

(3) 排他資源管理テーブルの空き待ちとなり,ジョブが実行待ち状態の場合

ロック獲得中またはロック待ち中のファイル合計数が,設定ファイルのLOCK_MAXFILEで指定したファイル数を超えたことによって,排他資源管理テーブルの空き待ちが発生した場合,次に示すKAKC1654-Wメッセージを出力する。

また,排他資源管理テーブルの空き待ちが発生した後,排他資源管理テーブルの空き待ちが解除された場合,次に示す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で指定した排他資源管理テーブルのエントリ数を見直す必要がある。