Hitachi

uCosminexus Batch Job Execution Server 使用の手引


3.4.7 プログラムへのファイル割り当て機能

〈この項の構成〉

(1) DD要素の書き方

ジョブステップで実行するプログラムが利用するファイルを,あとから自由に変更できるように,ファイル名をジョブ定義XMLファイルで指定できる。

ジョブ定義XMLファイルでは通常のファイルの場合は,次に示すように指定する。

<DD NAME="DD名" TYPE="FILE" DSN="ファイルのパス名"/>

DD要素には,TYPE属性値に通常ファイルであることを示す"FILE"を指定し,DSN属性値にファイルのパス名を指定する。

同じSTEP要素内で実行するCOBOL2002で作成したプログラムからは,NAME属性に対応した名称を指定することで,このファイルのパス名をアクセスできる。これによって,プログラムを修正することなく,ジョブ定義XMLファイルを変更するだけで,プログラムからアクセスするファイルを変更して割り当てることができる。

(a) DSN属性の指定方法

DSN属性の指定値および設定ファイルのパラメータの指定によってアクセスするパス名の扱いを次の表に示す。

表3‒12 DSN属性の指定値および設定ファイルのパラメータの指定によってアクセスするパス名の扱い

DSN属性の値

パス名

/[パス名/]ファイル名

絶対パスとして指定した絶対パスのファイルをアクセスする。

./[パス名/]ファイル名

プログラムが実行しているカレントディレクトリ(ワーキングディレクトリ)からの相対パスのファイルをアクセスする。

[パス名/]ファイル名

設定ファイルのPERMANENT_FILE_DIRで指定された特定のディレクトリからの相対パスのファイルをアクセスする。

${BJEX_DIR_任意名} [パス名/]ファイル名

設定ファイルのBJEX_DIR_任意名で指定されたパス名置換識別子を相対パスとしたファイルをアクセスする。

(b) PERMANENT_FILE_DIRの指定方法

DSN属性に指定された相対パスは,設定ファイルのPERMANENT_FILE_DIRに指定されたパスからの相対パスとなる。

  • 設定ファイルの指定

    PERMANENT_FILE_DIR /home/test/
  • DD要素の指定

    <DD NAME="DD1" TYPE="FILE" DSN="dir1/file1" />
  • 設定される環境変数

    DDN_DD1=/home/test/dir1/file1

(c) BJEX_DIR_任意名の指定方法

設定ファイルに識別子とディレクトリを定義しておき,DSN属性に${と}で囲まれた識別子BJEX_DIR_xxxxを指定した場合,識別子BJEX_DIR_xxxxに指定されたパスからの相対パスとなる。

  • 設定ファイルの指定

    BJEX_DIR_xxxx /tmp/
  • DD要素の指定

    <DD NAME="DD1" TYPE="FILE" DSN="${BJEX_DIR_xxxx}dir1/file1" />
  • 設定される環境変数

    DDN_DD1=/tmp/dir1/file1

(2) DD要素をプログラムから使用する方法

ジョブ実行時にプログラムが入出力を行うファイルは,ジョブ定義XMLファイルのDD要素と対応づけができる。定義されたファイルのパス名は環境変数に設定されるため,プログラムから環境変数を参照してファイルを使用できる。

ジョブコントローラが設定する環境変数名は,DD要素のNAME属性に指定されたNAME値に文字列を付加した名称とする。付加する文字列は,EXEC要素に指定するプログラム言語によって異なる。環境変数の値を次の表に示す。

表3‒13 EXEC要素に指定するプログラム言語による環境変数

項目

プログラム言語

COBOL

指定なし

EXEC要素の指定

<EXEC PGM="UAP1" LANG="COBOL" />

<EXEC PGM="UAP1" />

環境変数名

先頭に"CBL_"を付加したDD要素名("CBL_" + DD要素名)

<DD NAME="ABC" />

環境変数名:CBL_ABC

先頭に"DDN_"を付加したDD要素名("DDN_" + DD要素名)

<DD NAME="ABC" />

環境変数名:DDN_ABC

環境変数の値

DSN属性値

DSN属性値

DD要素の記述例を次に示す(恒久ファイル用ディレクトリなしの場合)。

<EXEC PGM="UAP1" />
<DD NAME="DD1" DSN="/home/file1" />

上記例の場合に設定される環境変数を次に示す。この場合,環境変数DDN_DD1を参照して,/home/file1のファイルを使用できる。

DDN_DD1=/home/file1

(3) 環境変数に設定される内容

環境変数に設定される内容を次の表に示す。

表3‒14 環境変数に設定される内容

TYPE属性値

ファイル種別

環境変数に設定される内容

FILE

通常のファイル

DSN属性で指定されたファイルのファイル名

DIR

ディレクトリ

DSN属性で指定されたディレクトリのディレクトリ名

GDG

世代ファイル

相対世代番号に対応するファイルのファイル名

TEMP

一時ファイル

ジョブコントローラプロセスが作成した一時ファイルのファイル名

TEMPISAM

一時ISAMファイル

ジョブコントローラプロセスが作成した一時ファイルのファイル名

DATA

SYSINデータ

ジョブコントローラプロセスが作成した一時ファイルのファイル名

DUMMY

ダミーファイル

  • DUMMY_FILE_TYPEパラメータにTEMPを指定

    ジョブコントローラプロセスが作成した一時ファイルのファイル名

  • DUMMY_FILE_TYPEパラメータにDEVNULLを指定

    /dev/null

SYSOUT

SYSOUTデータファイル

作成したスプールファイルのファイル名

LIB

プログラム検索ディレクトリ

  • NAME属性で指定された環境変数

    DSN属性で指定されたディレクトリのディレクトリ名を,DD要素の出現順に":"(コロン)で区切った文字列である。

  • PATH環境変数

    NAME属性で指定された環境変数の文字列を,PATH環境変数でのプログラム検索パスの並びの先頭に付加する。

PREST

ジョブ間PRESTファイル

ジョブコントローラプロセスが作成したジョブ間PRESTファイル名

TEMPPREST

ジョブステップ間PRESTファイル

ジョブコントローラプロセスが作成したジョブステップ間PRESTファイル名

(4) 環境変数名を任意の名称に設定する方法

ジョブコントローラが設定する環境変数名を,先頭に"DDN_"または"CBL_"を付加しない任意の名称とする場合,DD要素にRENAME属性を指定する。

COBOL2002の特殊な環境変数など,"DDN_"または"CBL_"で始まらない環境変数名を使用する場合は,RENAME属性を指定する。

RENAME属性を用いて,任意の環境変数名を指定する場合の記述例を次に示す。

<EXEC PGM="UAP1" />
<DD NAME="DD1" DSN="/home/file1" RENAME="ANYNAME" />

上記例の場合に設定される環境変数を次に示す。この場合,/home/file1のファイルを使用するための環境変数名は,"DDN_DD1"ではなく"ANYNAME"になる。

ANYNAME=/home/file1

RENAME属性を使用する場合の注意事項を次に示す。

(5) ファイルの割り当て時に付与されるアクセス権限

バッチジョブ実行システムによって実行されるジョブの中でファイルが割り当てられる場合,次の原則でファイルへのアクセス権限が設定される。

(a) DD要素で割り当てるファイルとディレクトリ

ファイルのアクセス権限は,次のどれかに指定された権限値を持つファイルが割り当てられる。

  • ジョブ定義XMLファイル内のDD要素のFPERM属性またはPERMISSION要素

  • 設定ファイルのPERMISSION_DIRパラメータおよびPERMISSION_FILEパラメータ

これらの情報を設定していない場合,バッチジョブ実行システムはファイルに対して権限0600を,ディレクトリに対して権限0700を仮定してファイルまたはディレクトリを割り当てる。

DD要素によってファイルまたはディレクトリが新規に割り当てられる場合,ユーザ環境のumask設定は無効であり,ジョブ定義XMLファイルまたは設定ファイルで指定された権限値がそのままアクセス権限として適用される。

(b) EXEC要素のPGM属性で指定したユーザアプリケーションが作成したファイルとディレクトリ

ユーザ環境のumaskに基づいてファイルが作成される。

(c) CDATA内に記述したシェルスクリプト内で作成したファイルとディレクトリ

ユーザ環境のumaskに基づいてファイルが作成される。