バッチジョブが実行時に作成するファイル資源のバックアップを保存し、ファイルの世代を管理します。世代の管理を行うファイルを“世代ファイル”と呼びます。
世代ファイル名
世代管理を行うファイルの総称を“世代ファイル名”と呼びます。
世代ファイル名は、実際のファイル名ではなく、ファイルの世代管理機能を使用する場合に使用する仮想的なファイル名です。
世代ファイル名の長さは“255-(インストールディレクトリ名の長さ+60)”以下になるように設定してください。
世代ファイル名と実際のファイル名の関係
ファイルの世代管理機能は、バッチジョブが新規に作成するファイルに対して世代ファイル内で一意の番号(“絶対世代番号”と呼びます)を割り振って各世代のファイルを管理します。
実際のファイル名は、世代ファイル名の末尾にピリオドで‘G’+絶対世代番号が付加されます。
世代ファイル名“fileA”の最新世代の絶対世代番号が“2”の場合、実際のファイル名は以下の名前になります。
fileA.G0002 … 最新世代 |
メッセージの可変情報やジョブログへ出力する資源情報には、実際のファイル名をそのまま出力します。
ファイルの世代管理機能の使用方法について概要を説明します。
世代ファイルの設計
世代ファイルを使用した運用を考慮して、世代ファイル情報の設計を行います。
世代ファイルの設計については、“Interstage Job Workload Server セットアップガイド“の“世代ファイルの設計”を参照してください。
世代ファイルの登録
世代ファイルを使用するには、バッチ実行基盤のセットアップで、世代ファイルの属性情報(“世代ファイル情報”と呼びます)を登録する必要があります。
世代ファイル情報の登録については、“Interstage Job Workload Server セットアップガイド”の“世代ファイル情報の登録”を参照してください。
世代ファイルの使用
ジョブで使用するには、バッチジョブ定義の資源定義に、世代ファイル名と、アクセスしたい世代(“世代番号”と呼びます)を指定します。
バッチアプリケーションは、資源名を指定して、任意の世代のファイルへアクセスすることができます。
ファイルの世代管理機能で世代を管理できるファイルは非一時ファイルだけです。一時ファイルの世代を管理することはできません。
バッチジョブ定義の資源定義で世代ファイルを指定する場合に、世代番号は以下のどちらかを指定します。それぞれの詳細を説明します。
相対世代番号
最新の世代を基点に、相対的な順序を指定する世代番号です。
相対世代番号は、ジョブステップ単位にカウントします。このため、ジョブステップの開始時点で最新の世代が“0”になります。
最新世代の相対世代番号は“0”で表します。“+0”や“-0”と指定することはできません。
古い世代の相対世代番号は負の整数(-1、-2、…)で表します。
新しく登録する世代の相対世代番号は正の整数(+1、+2、…)で表します。
相対世代番号の指定可能な範囲は、-99~+99です。
バッチ実行基盤ではジョブステップ単位に相対世代番号を指定するため、ジョブが異常終了した場合に、ジョブステップ単位のリカバリが可能です。
異常終了したジョブを再度実行する場合、正常終了したジョブステップは迂回して途中のジョブステップから開始することができます。
絶対世代番号
ファイルの世代管理機能が世代ファイル内で一意に割振る番号で、世代ファイルの実際のファイル名に付与されます。
過去に作成した世代ファイルを明示的に指定する場合に使用します。
絶対世代番号で指定することによって、確実に使用対象のファイルを指定することが可能です。
絶対世代番号は、0~9999の値です。
絶対世代番号は、世代がファイルの世代管理機能に登録された順番に1ずつ加算されます。
ジョブで新規に作成する世代ファイルを絶対世代番号で指定することはできません。
相対世代番号および絶対世代番号の指定と実際のファイル名は、以下の対応関係になります。
世代ファイル名が“fileA”で、最新世代の実際のファイル名が“fileA.G0002”の場合
世代 | 相対世代 | 絶対世代 | 説明 | 実際のファイル名 |
---|---|---|---|---|
作成済みの世代 | -2 | 0 | 2世代前の作成済みファイル | fileA.G0000 |
-1 | 1 | 1世代前の作成済みファイル | fileA.G0001 | |
0 | 2 | 最新世代の作成済みファイル | fileA.G0002 | |
新しい世代 | +1 | 指定不可 | 新しく作成する1世代目のファイル | fileA.G0003 |
+2 | 指定不可 | 同じジョブステップで作成する2世代目のファイル | fileA.G0004 |
絶対世代番号は、9999を超えた場合には0に戻ります。この場合、同一の絶対世代番号を持つ世代ファイルおよび世代情報が存在した場合は、その世代ファイルおよび世代情報を消去してから作成します。
世代ファイルを作成する方法には以下があります。
新規に世代を作成する
ジョブステップで新規に世代を作成する場合は、以下を資源定義に指定します。
相対世代番号に“+1”を指定します。
資源定義の[資源の作成・使用方法]には、[新規ファイルを作成する]を指定してください。
過去に作成した世代のファイルを作成し直す
過去に作成した世代のファイルを作成し直す場合は、以下のどちらかを資源定義に指定します。
相対世代番号に負の整数(-1、-2、…)を指定します。
過去に作成した世代の絶対世代番号を指定します。
相対世代番号は、ジョブステップの開始時点で最新の世代が“0”になります。
資源定義の[資源の作成・使用方法]には、[ファイルが存在した場合はそのまま使用する]を指定してください。
既存の世代ファイルの更新は、資源定義の[ファイルがすでに存在する場合はそのまま使用する]または[既存ファイルを更新する]と、[世代番号]の[相対世代番号]または[絶対世代番号]を指定して行ってください。
2世代以上の世代を作成する
1つのジョブステップ内で1つの世代ファイルに対して新規に複数の世代(N世代)を作成する場合は、世代を作成する順に以下を指定します。
各資源定義の相対世代番号に正の整数(+1、+2、…、+N)を指定します。
相対世代番号は、ジョブステップの開始時点で最新の世代が“0”になります。
資源定義の[資源の作成・使用方法]には、[新規ファイルを作成する]を指定してください。
正の相対世代番号の指定(+1、+2、…)は、ジョブステップ内で“+1”から開始して、連続した番号を指定する必要があります。
番号が連続しない場合は、バッチジョブ定義登録時またはジョブ実行時にエラーになります。
ジョブステップで新規に世代を作成する場合、以下の条件でジョブ開始時にエラーになります。
1つのジョブステップで作成する世代数 | 相対世代番号の指定位置 | 資源定義の[正常終了時の後処理]の指定 | ジョブの実行 | 説明 |
---|---|---|---|---|
1 | +1 | [削除] | 正常 | 途中世代の抜けは発生しないため、エラーにはなりません。 |
N(2以上) | +(N-1) | [削除] | 異常 | 途中世代の抜けが発生し、世代番号が連続しないため、ジョブ開始時にエラーになります。 |
+N | [削除] | 正常 | 一番大きい相対世代番号の世代を削除する場合には、途中世代の抜けは発生しないためエラーにはなりません。 |
世代ファイルの確定
ファイルの世代管理機能は、新規に世代を作成するジョブステップの終了時に世代を登録し、ジョブステップ単位で世代ファイルの世代番号を確定します。
世代番号(新規の世代ファイル)は、以下の条件で確定します。
新規に世代を作成するジョブステップで、各世代のファイルが正常に割当てられていること。かつ、
ジョブステップの終了時に、当該ジョブステップで新規作成された世代ファイルが保存されること。
世代番号が確定した世代ファイルに対して追加で書き込みなどの更新を行っても、世代番号はカウントされません。
世代番号の確定と、ジョブまたはジョブステップの実行結果は対応していません。
たとえば、ジョブステップで世代ファイルを新規に作成して削除した場合は、ジョブステップが正常終了しても、世代番号はカウントされません。
世代ファイルを新規に作成するジョブステップが異常終了した場合は、世代番号はカウントされません。この場合、作成された世代ファイルは、資源定義の[資源の後処理]の[ジョブステップが異常終了した場合]の指定に従って処理されます。
ジョブステップで使用する世代ファイルの後処理は、資源定義の[資源の後処理]の指定に従って処理します。ファイルの世代管理機能上の世代の管理情報は、ジョブステップで世代ファイルを削除した場合でも削除されません。
世代ファイルを参照する方法には以下があります。
最新の世代を参照する
最新世代のファイルを作成する場合は、以下のどちらかを資源定義で指定します。
相対世代番号で“0”を指定します。
最新の世代を絶対世代番号で指定します。
過去に作成した世代のファイルを参照する
過去に作成した世代のファイルを作成し直す場合は、以下のどちらかを資源定義で指定します。
相対世代番号で負の整数(-1、-2、…)を指定します。
過去に作成した世代を絶対世代番号で指定します。
資源定義の[世代番号]に、管理対象外の世代を指定した場合や、相対世代番号の値を、最大世代数を超えて指定した場合は、ジョブ実行時にジョブステップ開始の時点でエラーになります。
資源定義の[資源の作成・使用方法]には、[既存のファイルを参照する]を指定してください。
世代ファイルとその他のファイル管理機能との関係を説明します。
世代ファイルのファイルの排他
世代ファイルを使用する場合、各世代の実際のファイル単位ではなく、世代ファイル単位(ディレクトリ名+世代ファイル名)に対してファイルの排他制御を行います。
排他の獲得と解除は、非世代ファイルと同じ契機です。排他の解除はジョブが使用する世代ファイルのバッチジョブ定義の[資源の後処理]の指定に基づいて行います。
世代ファイル名と同一名の非世代ファイルは指定できません。世代ファイル名と同一名の非世代ファイルを指定した場合、ジョブ実行時にエラーになります。
世代ファイルのファイルの割当て
通常のファイルと同様に、資源定義の指定に基づいて各世代のファイル単位に行います。
世代ファイルの事前容量チェック
通常のファイルと同様に、資源定義の指定に基づいて各世代のファイル単位に事前容量チェックを行います。
ファイルパスの論理化機能
コマンドで論理ディレクトリ名を使用して世代ファイルを指定する場合、コマンド実行時に有効となっている論理ディレクトリ定義に基づいて世代ファイルのディレクトリを置き換えます。
btfwaddgenfileinfコマンドで論理ディレクトリ名を使用して世代ファイルを登録した場合、世代ファイルのディレクトリは、コマンド実行時に有効となっている論理ディレクトリ定義に基づいて決定します。
btfwaddgenfileinfコマンドで論理ディレクトリ名を使用して世代ファイルを登録した後に論理ディレクトリ定義を更新して、世代ファイル登録時に使用した論理ディレクトリ名に関する情報を変更した場合は、ジョブ実行時にファイルが存在しないエラーになる場合があります。