ジョブ単位にファイルの排他を獲得します。また、ジョブステップ終了時またはジョブ終了時に、ジョブが使用したファイルの排他を解除します。これにより、アプリケーションや運用で排他機構を用意する必要がなくなり、同じファイルを更新するジョブが同時に動作することで発生するファイルの破壊を防止します。
ファイルを更新するジョブを実行する場合は、そのジョブが終了するまで、ほかのジョブがファイルを参照、および更新できないようにする必要があります。また、複数のジョブがファイルの参照だけする場合には、同時に参照できるようにする必要があります。ファイルの排他機能は、目的に応じてファイルの排他の種類を選択できます。
排他の種類
ファイルの排他の種類は、以下のとおりです。
排他モード
ファイルを排他的に使用する場合に選択します。
排他モードを選択すると、ほかのジョブとファイルを同時に使用できません。
共用モード
ファイルを共用して参照する場合に選択します。
共用モードを選択すると、共用モード同士のジョブでファイルを同時に使用できます。
ファイルの排他の種類は、バッチジョブ定義で設定します。
設定方法は、“2.2.2.4 資源定義”を参照してください。
後続ジョブの動作
先行ジョブで使用されているファイルに対して、後続ジョブの動作を以下から選択します。
待ち指定
排他が獲得できるまで当該ジョブの実行を待ち合わせます。この待ち合わせを排他待ちと呼びます。排他待ち発生後のジョブの実行順番は、先に排他待ちが発生したジョブから実行されます。排他待ち発生時までに獲得したファイルの排他は保持し続けます。
なお、ジョブの実行経過時間制限値を設定することで、排他待ち状態となったジョブをエラーにできます。
エラー指定
ジョブが異常終了します。
参照
ジョブの排他獲得状況と排他待ち状況は、btfwexcinfoコマンドで確認できます。btfwexcinfoコマンドについては、“Interstage Job Workload Server リファレンス”を参照してください。
待ち指定、およびエラー指定を指定したときのジョブの動作を以下に示します。
待ち指定の場合の後続ジョブの動作は以下のとおりです。
ジョブの指定と動作 | 後続ジョブ | ||
---|---|---|---|
排他モード | 共用モード | ||
先行ジョブ | 排他モード | 後続ジョブが排他待ち | 後続ジョブが排他待ち |
共用モード | 後続ジョブが排他待ち | 共用で使用 |
先行ジョブが共用モードでファイルを排他している場合
先行ジョブが排他モードでファイルを排他している場合
エラー指定の場合の後続ジョブの動作は、以下のとおりです。
ジョブの指定と動作 | 後続ジョブ | ||
---|---|---|---|
排他モード | 共用モード | ||
先行ジョブ | 排他モード | 後続ジョブがエラー | 後続ジョブがエラー |
共用モード | 後続ジョブがエラー | 共用で使用 |
先行ジョブが共用モードでファイルを排他している場合
先行ジョブが排他モードでファイルを排他している場合
ファイル管理機能は、バッチジョブ定義にもとづいてファイルの排他を保持し続けます。
排他の獲得契機と解除契機は、以下のとおりです。
排他の獲得契機
ジョブの開始時に、バッチジョブ定義に設定したすべてのファイルの排他を一括して獲得します。
排他の解除契機
ファイルを使用する最後のジョブステップの終了時に排他を解除します。ただし、バッチジョブ定義の[資源の後処理]に[後続ステップへ渡す]を指定したファイルは、ジョブ終了時まで排他を保持し続けます。
上記のように、ジョブで使用するすべてのファイルの排他をジョブ開始時にあらかじめ獲得することで、ジョブ実行中のデッドロックの発生を防止します。
ジョブ開始時に獲得する排他の有効範囲を以下に示します。