3.9.7 世代ファイルの注意事項
- 〈この項の構成〉
(1) 世代登録可能数以上の世代ファイル番号の登録が発生した場合の注意事項
世代データ群に登録できる世代ファイルの上限は,次のようになっている。
世代番号指定機能:1〜255
日付世代番号指定機能:1〜511
登録可能数は,bjexgdgコマンドの-lオプションに指定する値によって変更可能となっている。
なお,世代データ群の属性によって,登録可能数分の世代ファイルが登録済みの状態で,新たに世代ファイルの登録が行われると,世代ファイルが次に示す扱いとなる。
(a) 自動消去機能(SCRATCH)が設定された世代データ群の場合
-
相対世代番号指定機能
新たな世代ファイルの登録によって,世代登録可能数を超えた場合,最古の世代ファイルを世代データ群の管理から削除する。世代データ群の管理から削除された世代ファイルは,自動的に消去される。
-
日付世代番号指定機能
新たな世代ファイルの登録によって,世代登録可能数を超えた場合,実行開始日(EXDに格納された日付またはDyyyymmdd)が最も古い世代ファイルを世代データ群の管理から削除する。世代データ群の管理から削除された世代ファイルは,自動的に消去される。
(b) データ保存機能(NOSCRATCH)が設定された世代データ群の場合
-
相対世代番号指定機能
新たな世代ファイルの登録によって,世代データ群の管理数を超えた場合,最も古い世代ファイルは世代データ群の管理から削除する。ただし,世代ファイルの消去は行わないため,世代ファイルが増加し続ける。世代ファイルに与える4けたの通し番号(0000〜9999)を使い切った時点で世代ファイル機能自体が利用できなくなるため,世代データ群を作る場合は必ずエントリ数を指定して作成すること。
なお,世代データ群の管理数を超えた世代ファイルは,必要に応じてrmコマンドで削除すること。
-
日付世代番号指定機能
日付世代番号指定機能の世代データ群に対してNOSCRATCHを指定することはできない。
(2) 世代ファイルを作成する場合のDD要素の注意事項
-
TYPE属性はGDGを指定する。
-
同一ジョブ内で作成した世代ファイルを後方のジョブステップで参照する場合,作成時と同じ相対世代番号を指定する。
-
DISP属性の第1パラメータはNEW,第2パラメータはKEEPを指定する。
(3) 世代ファイルを参照する場合のDD要素の注意事項
-
DSN属性とDISP属性は必ず指定すること。
- <例>
<DD NAME="DD1" DSN="ACCOUNT.X(0)" TYPE="GDG" DISP="SHR" />
-
同一ジョブ内で作成した世代ファイルを後方のジョブステップで参照する場合,作成時と同じ相対世代番号を指定する。
-
DISP属性の第1パラメータにMODを指定して世代ファイルを参照する場合,指定した世代ファイルが存在しないと割り当てエラーになる。
(4) 自動消去機能(SCRATCH)が設定された世代データ群の注意事項
相対世代番号指定機能では,世代データ群で管理される世代ファイルは,次に示す3つの絶対世代番号群に分類される。
-
I群:G0000〜G0999の範囲に含まれる番号
-
II群:G1000〜G8999の範囲に含まれる番号
-
III群:G9000〜G9999の範囲に含まれる番号
通常の大小関係では,"I群<II群"または"II群<III群"となる。
また,世代データ群に絶対世代番号群がIII群登録されている場合,I群の絶対世代番号群の世代ファイルを登録すると絶対世代番号がラップアラウンドする。
ラップアラウンド後,III群の絶対世代番号群が存在する場合,I群の世代ファイルを登録すると,G10000〜G10999と解釈するため,大小関係は,"III群<I群"となる。
絶対世代番号G0000〜G9999の世代ファイル登録時の扱いを次の表に示す。
絶対世代番号 |
同一世代データ群中にG9000〜G9999のファイルを含まない場合 |
同一世代データ群中にG9000〜G9999のファイルを含む場合 |
---|---|---|
GnnnnがG0000〜G0999のファイル |
G0000〜G0999と見なす。 |
G10000〜G10999と見なす。 |
GnnnnがG1000〜G9999のファイル |
G1000〜G9999と見なす。 |
しかし,世代データ群にすべての絶対世代番号群が登録されると,大小関係が"II群<III群<I群"となるため,常に最新に登録した世代ファイルが,世代データ群の管理上,最新の世代ファイルとならなくなるため,KAKC4064-Eメッセージを出力し,世代ファイルの登録防止をする。
世代ファイルが登録防止となる条件を次の表に示す。
登録する世代ファイルの絶対世代番号群 |
世代データ群の管理上,存在する絶対世代番号群 |
システムでの処置 |
---|---|---|
I群:G0000〜G0999の範囲 |
II群およびIII群 |
KAKC4064-Eメッセージを出力し,世代ファイルの登録防止をする。 |
II群:G1000〜G8999の範囲 |
III群およびI群 |
|
III群:G9000〜G9999の範囲 |
I群およびII群 |
- KAKC4064-Eメッセージを出力し,世代ファイルの登録防止となる例
-
世代データ群作成時,エントリ数255を指定し,常に世代ファイルを相対(+255)で登録する。
世代ファイルが登録防止となる例を次の表に示す。
表3‒21 世代ファイルが登録防止となる例 登録される世代ファイルの絶対世代番号群
登録される世代ファイル
システムでの処置
I群:G0000〜G0999の範囲
G0255,G0510,G0765
世代ファイルは登録される。
II群:G1000〜G8999の範囲
G1020,G1275〜G8925
III群:G9000〜G9999の範囲
G9180(登録防止となる)
KAKC4064-Eメッセージを出力し,世代ファイルの登録防止をする。
(5) 最新世代として登録した世代ファイル番号が登録されない場合
世代ファイル登録時にKAKC4064-Eメッセージを出力し,登録不可となった場合は,メッセージの処置に従い,最古の絶対世代番号群に含まれるすべての世代ファイルを,削除し,再度ジョブを実行する必要がある。
(6) 世代ファイルを削除する場合の注意事項
世代ファイルはDISP属性でDELETEパラメータを指定することで削除できる。
ただし,世代データ群名指定の場合,DISP属性でDELETEパラメータを指定しても削除はできない。世代データ群名指定でDISP属性にDELETEパラメータを指定した場合,バッチジョブ実行システムはDELETEパラメータを指定してもKEEPパラメータを仮定する。
すべての世代ファイルを削除する場合は,世代ファイルの削除を行い世代データ群に登録されている世代ファイルが1つもなくなった時点で,bjexgdgコマンドの-qオプション指定によって世代データ群を削除する。上記の指定で削除ができない場合は,rmコマンドによって次に示すファイルをすべて削除する。
-
"世代データ群名.Gnnnn"(nnnnは0000〜9999の数字)または,"世代データ群名.Dyyyymmdd"(yyyy:西暦,mm:月,dd:日)
-
"世代データ群名.gdg"
-
".世代データ群名.gdg"
(7) 世代ファイルのバックアップとリストア
世代ファイルのバックアップおよびリストアは,バッチジョブ実行システムが停止している状態で行う必要がある。
バックアップおよびリストアを行う対象ファイルを次に示す。
-
"世代データ群名.Gnnnn"(nnnnは0000〜9999の数字)または,"世代データ群名.Dyyyymmdd"(yyyy:西暦,mm:月,dd:日)
-
"世代データ群名.gdg"
-
".世代データ群名.gdg"
上記のファイルをバックアップおよびリストアしない場合,世代管理の整合性を保つことができなくなる。
(8) 世代管理ファイル作成時の注意事項
世代管理ファイルはbjexgdgコマンドで作成する。このとき,bjexgdgコマンドの起動時のumaskの指定に従い,ファイルパーミッションが設定される。世代管理ファイルには,世代ファイルを使用するすべてのユーザに対して書き込み権限・読み込み権限を設定する必要がある。世代ファイルを参照するだけでも世代管理ファイルには書き込み権限が必要である。
(9) 日付世代番号指定機能の注意事項
(a) 排他制御機能について
日付世代番号指定機能では,LOCK_OPTIONパラメータでENABLEを指定し,排他制御機能を有効にしなければ使用することはできない。
(b) バッチジョブの強制終了によって生じる世代管理ファイルの矛盾について
世代ファイルを作成し,世代管理ファイル更新前にバッチジョブが強制終了すると,作成された世代ファイルは世代管理されていない状態になることがある。この場合この世代ファイルは,世代ファイルとしての機能を使用することができないため,rmコマンドなどによって削除してから,再度作成する必要がある。