Interstage Job Workload Server バッチ開発ガイド |
目次
![]() ![]() |
第2章 ジョブの設計 | > 2.1 設計に必要な知識 | > 2.1.3 ファイル管理 |
ファイル管理機能は、バッチジョブが実行時に作成するファイル資源のバックアップを保存し、ファイルの世代を管理します。
世代管理を行うファイルは、ジョブを実行する前に世代ファイルの属性情報(世代ファイル情報)をファイル管理機能に登録します。
ジョブで使用する世代ファイルの指定は、バッチジョブ定義の資源定義から行います。
バッチアプリケーションに対するファイル名の受け渡しには、通常どおり環境変数でファイル情報を通知するため、バッチアプリケーションは各世代のファイルを意識することなく、資源名を指定して世代ファイルへアクセスすることができます。
世代ファイルは非一時ファイルのみ使用できます。一時ファイルはジョブ内に閉じて使用するファイルであるため、世代ファイルは使用できません。
世代ファイル名とは、ファイルの世代管理機能を使用する場合に使用する仮想的なファイル名であり、物理的なファイル名ではありません。ファイルの世代管理機能は、新規に作成するファイルに対して世代ファイル内で一意の番号(絶対世代番号)を割り振って各世代のファイルを管理します。絶対世代番号は、0〜9999の値です。各世代のファイル名は、世代ファイル名の末尾にピリオドで'G'+絶対世代番号を付加して識別します。
世代ファイル名が“fileA"、絶対世代番号が1の場合は、実際のファイル名は以下の名前になります。
fileA.G0001 |
![]()
- 絶対世代番号が9999を超えた場合は、0に戻ります。この場合、同一の絶対世代番号を持つ世代ファイルおよび世代情報が存在した場合は、その世代ファイルおよび世代情報を消去してから作成します。
- 世代ファイルの世代順は登録した順番に管理されます。
バッチジョブ定義の資源定義で世代ファイルを指定する場合には、以下の2つの指定方法があります。
世代ファイル名が“fileA"で、以下の順に3つの世代ファイルが登録されている場合に、相対世代番号および絶対世代番号でそれぞれのファイルを指定すると、以下のようになります。
世代 |
相対世代番号 |
絶対世代番号 |
世代の絶対ファイル名 |
|
---|---|---|---|---|
既存の世代 |
2世代前 |
-2 |
0 |
fileA.G0000 |
1世代前 |
-1 |
1 |
fileA.G0001 |
|
最新世代 |
0 |
2 |
fileA.G0002 |
|
新しい世代 |
新しく作成する世代 |
+1 |
指定不可 |
fileA.G0003 |
同じジョブステップで2世代作成する場合 |
+2 |
指定不可 |
fileA.G0004 |
![]()
- 相対世代番号で最新世代を指定する場合、“0"と指定してください。相対世代番号に‘+’や‘-’を付加して“+0”や“-0”と指定することはできません。
- メッセージの可変情報やジョブログへ出力する資源情報には、絶対ファイル名をそのまま出力します。
新しい世代を作成する場合は、バッチジョブ定義の資源定義に世代ファイル名と正の数の相対世代番号で指定します。
バッチジョブ内で1つの世代ファイルに対して複数の世代を登録する場合には、最新の世代ファイルに対する相対世代番号(+1、+2、…)で指定します。
また、最新世代を含む、過去に作成した世代のファイルを作成し直す場合には、相対世代番号(“0"または負の整数)、絶対世代番号のどちらかで指定します。
![]()
- 相対世代番号は、ジョブステップの開始時に最新である世代ファイルを基点とした値を設定します。
- 相対世代番号の指定可能な範囲は、過去の場合は99世代、将来は99世代までとします。(-99〜+99)
- ジョブで世代ファイルを作成する場合は、資源定義の[資源の作成・使用方法]に[新規ファイルを作成する]を指定するか、[ファイルが存在した場合はそのまま使用する]を指定し、正の整数の相対世代番号を指定してください。
- 正の整数の相対世代番号を指定する場合は、ジョブステップ内で+1以降の連続した相対世代番号を指定してください。途中の相対世代番号が抜けている場合は、バッチジョブ定義登録時またはジョブ開始時にエラーになります。
- 1つのジョブステップで複数の世代(N世代)を作成する場合に、資源定義の[正常終了時の後処理]に[削除]を指定すると、ジョブ開始時にエラーになります。
1つのジョブステップで作成する世代数
相対世代番号の指定
ジョブの実行結果
備考
1
+1
正常
N(2以上)
+(N-1)
異常(*1)
*1:ファイル管理機能のバッチジョブ定義の解析でエラー
+N
正常(*2)
*2: 一番大きい相対世代番号の世代を削除する場合には、途中世代の抜けが発生しないためエラーにはしない。
ファイルの世代管理機能は、世代ファイルを新規に作成するジョブステップの終了時に世代を登録し、そのジョブステップで作成した世代ファイルの世代番号を確定します。
世代の確定は、以下の条件で行います。
![]()
- 世代番号が確定している世代ファイルに対して追加書き込みを行って、世代番号を更新することはできません。
- 世代ファイルの世代の確定とジョブまたはジョブステップの実行結果は対応していません。上述のとおり、世代ファイルを資源定義の[資源の後処理]の指定で削除した場合は、ジョブステップが正常終了する場合でも、世代の確定(世代番号の更新)は行いません。
- 世代ファイルを作成するジョブステップが異常終了した場合は、世代番号は登録されず、作成された世代ファイルは、資源定義の[資源の後処理]の[ジョブステップが異常終了した場合]の指定に従って処理されます。
- ジョブステップで使用する世代ファイルは、資源定義の[資源の後処理]の指定に従って処理します。世代情報が登録済みの世代ファイルを資源定義の[資源の後処理]の指定で削除した場合は、管理上世代情報のみが残ります。
世代ファイルへの追加書き込みは、資源定義のファイルを新規に作成する指定で[ファイルがすでに存在する場合はそのまま使用する]または[既存ファイルを更新する]と、相対世代番号または絶対世代番号を指定して行ってください。
最新世代を含む、過去に作成した世代のファイルを参照するには、相対世代番号(“0"または負の整数)、絶対世代番号のどちらかで指定します。
管理対象外の世代を指定した場合や最大世代数を超えてさかのぼった相対世代番号の値を指定した場合は、ジョブステップ開始の時点でエラーになります。
世代ファイルを使用する場合、各世代のファイル単位(実ファイル名)ではなく、世代ファイル単位(ディレクトリ名+世代ファイル名)に対してファイルを排他します。
排他の獲得・解除契機は、世代ファイル以外の他のファイル(非世代ファイル)と同じ契機です。排他の解除はジョブが使用する世代ファイルのバッチジョブ定義の[資源の後処理]の指定に基づいて行います。
世代ファイル名と同一名の非世代ファイルは指定できません。世代ファイル名と同一名の非世代ファイルを指定した場合、ジョブの実行時にエラーになります。
通常のファイルと同様に、資源定義の指定に基づいて各世代のファイル単位に行います。
通常のファイルと同様に、資源定義の指定に基づいて各世代のファイル単位に事前容量チェックを行います。
目次
![]() ![]() |