3.13.2 ディレクトリ割り当て時の排他/共用要求の範囲
ディレクトリ割り当て時,ディレクトリ配下の全ファイルおよびディレクトリに対し,再帰的に排他/共用処理を行うかどうかを設定ファイルのLOCK_DIR_RECURSIVEパラメータで指定できる。
LOCK_DIR_RECURSIVEパラメータの指定内容による排他/共用処理の違いを次に示す。
(1) LOCK_DIR_RECURSIVEパラメータを省略またはYESを指定した場合
DD要素で指定したディレクトリを割り当て時,配下のファイルおよびディレクトリに対して再帰的に排他/共用制御を行う。
(a) 先行ジョブで割り当てているファイルの上位階層のディレクトリを後続ジョブで割り当てる場合
- 【先行ジョブ】
<DD NAME="DD0010" TYPE="FILE" DSN="/home/user/data/output/outputData1" DISP="OLD"/>
- 【後続ジョブ】
<DD NAME="DD0011" TYPE="DIR" DSN="/home/user/data" DISP="SHR"/>
先行ジョブでファイル"/home/user/data/output/outputData1"を排他要求で割り当てており,後続ジョブでは上位階層のディレクトリ"/home/user/data"を共用要求で割り当てる場合,ファイル"/home/user/data/output/outputData1"に対する共用要求のロック待ちとなる。
(b) 先行ジョブで割り当てているファイルと同一階層のディレクトリを後続ジョブで割り当てる場合
- 【先行ジョブ】
<DD NAME="DD0010" TYPE="FILE" DSN="/home/user/data/output/outputData1" DISP="OLD"/>
- 【後続ジョブ】
<DD NAME="DD0011" TYPE="DIR" DSN="/home/user/data/output" DISP="SHR"/>
先行ジョブでファイル"/home/user/data/output/outputData1"を排他要求で割り当てており,後続ジョブでは同一階層のディレクトリ"/home/user/data/output"を共用要求で割り当てる場合,ファイル"/home/user/data/output/outputData1"に対する共用要求のロック待ちとなる。
(2) LOCK_DIR_RECURSIVEパラメータでNOを指定した場合
DD要素で指定したディレクトリを割り当て時,ディレクトリおよびディレクトリ直下のファイルに対してだけ,排他/共用制御を行う。
(a) 先行ジョブで割り当てているファイルの上位階層のディレクトリを後続ジョブで割り当てる場合
- 【先行ジョブ】
<DD NAME="DD0010" TYPE="FILE" DSN="/home/user/data/output/outputData1" DISP="OLD"/>
- 【後続ジョブ】
<DD NAME="DD0011" TYPE="DIR" DSN="/home/user/data" DISP="SHR"/>
先行ジョブでファイル"/home/user/data/output/outputData1"を排他要求で割り当てており,後続ジョブでは上位階層のディレクトリ"/home/user/data"を共用要求で割り当てる場合,ディレクトリおよびディレクトリ直下のファイルに対してだけ排他/共用制御を行うため,先行ジョブで割り当てているファイルとのロック待ちは発生しない。
(b) 先行ジョブで割り当てているファイルと同一階層のディレクトリを後続ジョブで割り当てる場合
- 【先行ジョブ】
<DD NAME="DD0010" TYPE="FILE" DSN="/home/user/data/output/outputData1" DISP="OLD"/>
- 【後続ジョブ】
<DD NAME="DD0011" TYPE="DIR" DSN="/home/user/data/output" DISP="SHR"/>
先行ジョブでファイル"/home/user/data/output/outputData1"を排他要求で割り当てており,後続ジョブでは同一階層のディレクトリ"/home/user/data/output "を共用要求で割り当てる場合,同一階層のファイル"/home/user/data/output/outputData1"に対する共用要求のロック待ちとなる。