Hitachi

uCosminexus Batch Job Execution Server 使用の手引


3.12.2 PREST機能

ジョブおよびジョブステップ間で使用するファイルに,名前付きパイプ(FIFO)が指定できる。この機能をPREST機能と呼び,名前付きパイプをPRESTファイルと呼ぶ。

PRESTファイルを使用することで,逐次実行していたジョブおよびジョブステップを並列に実行することが可能となり,処理時間を短縮できる。

PRESTファイルはジョブ定義XMLファイルのDD要素で指定することで,ジョブ実行時にジョブコントローラによって一時ファイルディレクトリに自動生成され,プログラムで利用可能となる。PRESTファイルの名称は,一般のファイルと同様に環境変数に設定する。ジョブコントローラが生成したPRESTファイルは,ジョブ終了時にPRESTファイルを利用するジョブがなくなった時点で,ジョブコントローラが自動的に消去する。

PRESTファイルには,ジョブ間PRESTファイルおよびジョブステップ間PRESTファイルの2種類がある。ジョブ間PRESTファイルを使用する場合は,設定ファイルのLOCK_OPTIONパラメータでENABLEを指定し,バッチジョブ実行システムの排他制御機能を有効にする必要がある。

〈この項の構成〉

(1) ジョブ間PRESTファイル

ジョブ間PRESTファイルは,ジョブ間でPRESTファイルを使用する場合に使用する。

ジョブ間PRESTファイルは,同一ジョブ内で並列実行するジョブステップ間での使用もできるが,ジョブ間での使用を推奨する。

ジョブ間PRESTファイルは,ジョブ定義XMLファイルのDD要素でTYPE="PREST"を指定した場合に作成される。この場合,DSN属性にジョブ間PRESTファイルを識別するためのPREST識別名を指定する。また,DISP属性は省略する。DISP属性を指定した場合,DISP="SHR,KEEP,KEEP"を仮定する。

設定ファイルのLOCK_OPTIONパラメータにDISABLEを指定している場合,TYPE="PREST"を指定すると,ジョブ定義XMLファイルの解析時にエラーとなる。

ジョブ定義XMLファイルのDD要素での指定例を次に示す。

<DD NAME="A" DSN="X" TYPE="PREST"/>

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

ジョブステップ間PRESTファイルは,並列実行するジョブステップ間でPRESTファイルを使用する場合に使用する。

ジョブステップ間PRESTファイルは,ジョブ定義XMLファイルのDD要素でTYPE="TEMPPREST"を指定した場合に生成される。この場合,DSN属性として一時ファイル識別名を指定する。また,DISP属性は省略する。DISP属性を指定した場合,DISP="SHR,KEEP,KEEP"を仮定する。

ジョブ定義XMLファイルのDD要素での指定例を次に示す。

<DD NAME="A" DSN="X" TYPE="TEMPPREST"/>

(3) ジョブ間PRESTファイルの使用状況の表示

ジョブ間PRESTファイルの使用状況は,bjexlslockコマンドで表示できる。

ジョブ間PRESTファイルを使用するジョブは,PRESTファイルを利用してデータを受け渡しする相手のジョブがいない場合に待ち状態になる。このような状態のジョブを発見するためにbjexlslockコマンドを使用する。

次に示す内容でbjexlslockコマンドを実行すると,待ち状態になっているジョブ間PRESTファイルの表示ができる。

bjexlslock -l -t PREST

表示されたジョブ間PRESTファイルの名称とジョブ識別子を基に,ジョブやジョブスケジュールの定義を見直し,待ち状態の原因を調査する。

(4) PRESTファイルを使用できるプログラムとファイル

PRESTファイルは順次入力または順次出力だけを実行するプログラム間に適用できる。入力側のプログラムは,出力側のプログラムがPRESTファイルに出力したデータを,すべて入力する必要がある。また,複数のPRESTファイルを使用する場合,ファイルのオープン順序などがプログラム間でデッドロックまたは長時間の待ち状態とならないようにする必要がある。PRESTファイルはすべてのプログラムで適用できるわけではないため,PRESTファイルを使用する場合には,プログラムの処理が名前付きパイプに対応している必要がある。

バッチジョブ実行システムでは,PREST機能に対応したSORT EE,COBOLまたはファイル操作ユティリティ以外でPRESTファイルを使用した場合の動作は保証しない。ファイルのオープン順序が特定できないプログラムでは,PRESTファイルの使用は1個にとどめることを推奨する。

また,SORT EE,COBOLまたはファイル操作ユティリティで使用できるPRESTファイルの形式は,順編成だけである。

(a) プログラムが長時間待ち状態となる例

プログラムが長時間待ち状態となる例を次に示す。

  • 例1

    [図データ]

  • 例2

    [図データ]

  • 例3

    [図データ]

(b) プログラムがデッドロックになる例

プログラムがデッドロックになる例を次に示す。

  • 例1

    [図データ]

  • 例2

    [図データ]

(5) PREST機能に関する注意事項