3.21.5 環境変数一括設定機能
ファイルに格納された複数の環境変数を,ジョブステップ実行前に一括して設定することができる。
設定した環境変数は,それ以降に実行される全ジョブステップで有効となる。
(1) 指定方法
(a) 環境変数の指定方法
ジョブステップ実行前に設定したい環境変数を次の形式で任意のファイルに出力する。
- 環境変数の形式
環境変数=環境変数値
上記の環境変数が格納されたファイルを環境変数格納ファイルと呼ぶ。
(b) 環境変数格納ファイルの指定方法
環境変数格納ファイルは,環境変数を設定したいジョブステップのDD要素で定義する。併せて,ジョブ定義XMLファイルのSETENVFILE要素で,環境変数格納ファイルを定義したDD要素のDD名を指定する。
- (i)SETENVFILE要素
<SETENVFILE DDNAME="環境変数格納ファイルを定義しているDD要素のDD名" />
-
DDNAME="環境変数格納ファイルを定義しているDD要素のDD名"
DDNAME属性で指定されたDD名で定義されているファイルを環境変数格納ファイルとする。
環境変数格納ファイルに格納されている環境変数がジョブステップ実行前に設定される。
(2) 環境変数格納ファイルの詳細
(a) 設定する環境変数の書き方
設定する環境変数は,1行につき1つの環境変数を次の形式で任意のファイルに出力する。
△0環境変数名=環境変数値
- (凡例)
-
△0:0バイト以上の空白文字を指定する。空白文字の省略は可能。
複数の環境変数を設定する場合には,環境変数分の行を設定する。行数の制限はなく,ファイルの終わりまでを有効とする。
複数の環境変数を設定する例を次に示す。
(b) 環境変数格納ファイルの長さ
環境変数格納ファイルの1行の長さは改行コードを含めて2,047バイト以内である。長さを超える行があった場合にはエラーとし,その時点でジョブの実行は打ち切られる。
(c) 環境変数格納ファイル中の環境変数の扱い
環境変数格納ファイル中の環境変数名および環境変数値の形式チェックは行わない。行内の先頭の空白を削除した後,環境変数名の先頭から改行コードの前までをOSの環境変数設定関数に渡す。また,行の後部の空白は削除されない。なお,空白行だけの行は何もしないで,次の行を処理する。
バッチジョブ実行システムが使用/設定する環境変数は,環境変数格納ファイルでの設定を行ってはならない。
(d) 環境変数格納ファイルのDD要素での指定方法
環境変数格納ファイルは通常のファイル形式であり,ジョブ定義XMLのDD要素のTYPE属性では次の属性が指定可能である。
ファイル種別 |
DATA |
DUMMY |
FILE |
TEMP |
TEMPISAM |
PREST |
TEMPPREST |
GDG |
LIB |
SYSOUT |
DIR |
---|---|---|---|---|---|---|---|---|---|---|---|
指定可否 |
○※ |
× |
○※ |
○※ |
× |
× |
× |
○ |
× |
× |
× |
注※ 逆方向参照も可能。
なお,上記以外の属性の場合,XML解析時にエラーとなる。
(e) 環境変数格納ファイルの連結
複数の環境変数格納ファイルを連結した場合,ファイルの連結順に環境変数を設定する。
このため,複数のファイルで同一の環境変数を設定している場合,最後に設定したものが有効となる。また,世代データ群名を指定した場合も同様に,連結された世代ファイル順に環境変数を設定する。
(3) 環境変数設定エラー時のジョブの扱い
ジョブステップ実行前の環境変数設定処理でエラーが発生した場合,その時点でジョブの実行を中止する。
(4) 使用例
(a) あらかじめ環境変数が格納されているファイルを使用
<?xml version="1.0" encoding="Shift_JIS" ?> <HitachiBatchJobExec version="1.4" os="unix" > <JOB NAME="STEP_ENV"> <STEP NAME="STEP01" > <EXEC PGM="program1" /> <DD NAME="ENVFILE" TYPE="FILE" DSN=" Envvarfile" DISP="SHR,KEEP" />……※1 <SETENVFILE DDNAME="ENVFILE" />……………………………………………………※2 </STEP> <STEP MAME="STEP02" > <EXEC PGM="program2" /> </STEP> </JOB> </HitachiBatchJobExec>
注※1 DD要素で,一括設定したい環境変数が格納されている環境変数格納ファイルを定義する。
注※2 環境変数格納ファイルを定義したDD要素のDD名を指定する。
(b) 先行ジョブステップで後続ジョブステップで設定する環境変数をファイルに出力
<?xml version="1.0" encoding="Shift_JIS" ?> <HitachiBatchJobExec version="1.4" os="unix" > <JOB NAME="STEP_ENV"> <STEP NAME="STEP01" > <EXEC PGM="program1" /> <DD NAME="ENVOUT" TYPE="TEMP" DSN="Envvarfile" DISP="NEW,PASS" /> ………※1 </STEP> <STEP MAME="STEP02" > <EXEC PGM="program2" /> <DD NAME="ENVFILE" TYPE="TEMP" DSN="Envvarfile" DISP="OLD,DELETE" />……※2 <SETENVFILE DDNAME="ENVFILE" /> ……………………………………………………※3 </STEP> </JOB> </HitachiBatchJobExec>
注※1 PGM="program1"が,一括設定したい環境変数をファイルに出力。
注※2 DD要素で,一括設定したい環境変数が格納されている環境変数格納ファイルを定義する。
注※3 環境変数格納ファイルを定義したDD要素のDD名を指定する。