3.13 ジョブ単位のファイルおよびディレクトリに対する排他/共用制御機能
排他/共用制御機能は,設定ファイルのLOCK_OPTIONパラメータでENABLEを指定することで使用可能となる。LOCK_OPTIONパラメータで指定を省略,またはDISABLEを指定した場合は,排他/共用制御機能は使用できない。
ジョブで指定したDD要素のDISP属性値に従った排他/共用制御を,ジョブ実行単位に行う。
排他/共用制御は,ジョブ開始時にジョブで指定したすべてのDD要素の指定を確認し,一括して確保する。
排他/共用制御の解除は,設定ファイルのLOCK_RELEASEパラメータの指定によって次の契機で行われる。
-
LOCK_RELEASEパラメータを省略またはJOBを指定した場合
ジョブ終了時に一括して解除する。
-
LOCK_RELEASEパラメータでSTEPを指定した場合
ジョブステップ終了時に以降のジョブステップで指定されていないファイルおよびディレクトリの排他/共用制御を解除する。
ジョブ中のDD要素で指定したファイルおよびディレクトリに,1つでも排他/共用制御によるリソースに対するロック確保待ちが発生した場合,すべてのリソースに対するロック確保を行わないで,すべてのリソースに対するロック確保が可能となった時点でロック確保をする。
-
ファイルの内容が参照されるだけで変更されることがない場合,バッチジョブ実行システムはこのファイルを複数のジョブ間で共用できる状態とする。
-
ファイル中のデータを変更,追加,または削除する場合,ジョブが該当ファイルを使い終わるまで,ほかのジョブの実行を待たせる。また,ほかのジョブが先に該当ファイルを使用している場合には,ほかのジョブが該当ファイルを使い終わるまで,ジョブの実行を待たせる。
ジョブ単位のファイルおよびディレクトリに対する排他/共用制御を次の図に示す。
ジョブステップ終了時にファイルおよびディレクトリに対する排他/共用制御を解除する場合を次の図に示す。
同一ファイルおよび同一ディレクトリに対して排他/共用要求をジョブ間で行った場合,次に示す表の状態となる。
先行ジョブの要求 |
後続ジョブの要求 |
|
---|---|---|
共用要求(SHR) |
排他要求(EXC) |
|
共用要求(SHR) |
後続ジョブは共用要求のため資源確保ができ,実行できる。 |
後続ジョブはロック確保待ち。 |
排他要求(EXC) |
後続ジョブはロック確保待ち。 |
後続ジョブはロック確保待ち。 |