ファイルの事前容量チェック機能を使用すると、アプリケーションの処理中にファイルの容量不足が発生することを防止することができます。
ジョブステップの開始時に、バッチアプリケーションが使用するファイルに必要な容量を確保します。
ジョブステップの開始時にバッチアプリケーションで必要な容量が確保できない場合は、ジョブステップの開始処理を異常終了させます。
バッチアプリケーションが使用したファイルの容量を監視し、警告メッセージを出力します。
ファイルの事前容量チェック機能のイメージを以下に示します。
ファイルの事前容量チェック機能について説明します。
ファイルシステムの論理容量
ファイルの事前容量チェック機能で管理するファイルシステムの論理的な容量は、バッチ実行サービスの開始時にOSの管理するファイルシステムの空き容量で初期化します。
この初期値をもとに、ジョブが使用するファイルの容量をファイル管理上で論理的に管理します。
また、ファイルシステムの論理容量は、btfwrefreshdiskinfコマンドの実行でも初期化されます。
その他のコマンドの実行でも初期化される場合があります。“空き容量を更新するタイミング”を参照してください。
ファイルの事前容量チェック
ファイルの事前容量チェックは、各ジョブステップの開始ごとに行います。
ジョブステップの開始で、そのジョブステップの資源定義に指定されたファイル容量を確保します。
ジョブで使用するすべての出力ファイルの資源定義を、先頭のジョブステップで定義して後続ジョブステップが引き継いで使用する構成にすると、先頭ジョブステップの開始で、後続ジョブステップで使用するファイルの容量も確保することができます。複数のジョブステップで構成されるジョブの場合、途中のジョブステップで容量不足が発生する可能性を回避することができます。
ファイルの使用容量が確保される範囲
ジョブステップの資源定義の[使用容量]に指定されたファイルの使用量は、そのジョブステップ開始時に確保され、ファイルが削除されるか、ファイルの排他が解放されるまで確保されます。
ファイルが保持された場合
ファイルの排他が解放される段階で、確保していた論理的なファイルの容量をそのファイルの実際のファイル容量に補正して、論理的な空き容量を管理します。
ファイルが削除された場合
ファイルが削除される段階で、確保していた論理的なファイルの容量を0に補正して、論理的な空き容量を管理します。
後続ジョブステップでファイルを引継いで使用する場合
ジョブ内の後続ジョブステップでファイルを引継いで使用する場合は、後続ジョブステップまたはジョブの終了時にファイルの排他が解放されるまで確保されます。
なお、確保するファイルの容量は、先行のジョブステップと後続のジョブステップの資源定義で指定した[使用容量]のうち大きい方が有効になります(下図fileC)。
後続のジョブステップで指定した[使用容量]の方が多い場合は、後続のジョブステップ開始で、再度容量が確保されます(下図fileB)。
空き容量を更新するタイミング
ファイルの事前容量チェック機能で管理するファイルシステムの論理的な容量は、以下の図での動作(1)~(6)のタイミングで更新されます。
ファイルの事前容量チェック機能が管理できる範囲は、バッチ実行基盤で動作するジョブ、およびファイル管理機能の動作(5)、(6)のコマンドで、ファイルを操作する場合に限られます。
動作(7)および動作(8)のように、バッチ実行基盤以外のジョブおよびシェル、OSコマンドによりバッチ実行基盤以外から直接ファイルを操作する場合は、ファイルシステムの論理容量に反映されません。
このため、事前容量チェックを行うファイルシステムでは、バッチ実行基盤以外によるファイル操作を行わないでください。
バッチ実行基盤以外によるファイル操作を行った場合、btfwrefreshdiskinfコマンドを実行して、ファイルシステムの論理容量を、実際のOSのファイルシステムの容量に初期化してください。
ファイルの事前容量チェック機能の使用方法について概要を説明します。
ファイルの事前容量チェックを行うディレクトリの設計
ファイル資源専用のファイルシステムを設計する際に、ファイルの事前容量チェックを行うディレクトリを用意してください。
ファイルの事前容量チェックを行うファイルシステムには、ジョブの実行と関係のないファイルを配置せず、ジョブの実行に必要なファイルのみを配置してください。
ファイルの事前容量チェック機能は、バッチ実行基盤のジョブが使用したファイルの容量の確保と補正を通してファイルシステムの論理容量を管理します。バッチ実行基盤のジョブ以外の手段で作成したファイルや削除したファイルは、ファイルの事前容量チェック機能で管理されません。
このため、ファイルの事前容量チェックを行うファイルシステムにおいて、バッチ実行サービスの運用中にバッチ実行基盤のジョブ以外の手段によるファイル操作を行った場合、論理的な容量が正しく管理できなくなり、ジョブの動作時にファイル容量不足が発生する可能性があります。
ファイルの事前容量チェック機能で使用するディレクトリについては、“Interstage Job Workload Server セットアップガイド”の“ファイルシステムの設計”を参照してください。
ファイルの事前容量チェック機能の設定
ファイルの事前容量チェック機能を使用する場合は、バッチサーバ環境の設定時に、ファイルシステム設定ファイルを設定してください。
ファイルシステム設定ファイルには、ファイルの事前容量チェックを行うファイルシステムを、マウントポイントのディレクトリ名で指定します。
ファイルの事前容量チェック機能は、デフォルトで有効になります。このため、ファイルシステム設定ファイルを設定しない場合は、サポートするファイルシステムすべてをファイルの事前容量チェック機能の対象とします。
ファイルの事前容量チェック機能の設定については、“Interstage Job Workload Server セットアップガイド”の“ファイル管理機能の設定”を参照してください。
ジョブで使用するファイルの容量の指定(バッチジョブ定義)
バッチアプリケーションが使用するファイルの容量は、資源定義の[使用容量]で指定します。
ファイルの使用容量には、運用中に書込みを行うファイルに対して、ファイルの論理的なサイズを設定します。ファイルの論理的なサイズの見積り方法は、“資源の使用量”を参照してください。
バッチアプリケーションが使用後に不要になったファイルは、バッチジョブ定義の資源定義で削除するように設計してください。
ファイルの事前容量チェックを行うファイルシステムでは、すべてのジョブで、ファイルを新しく作成する場合または既存ファイルを更新する場合に資源定義にファイルの使用容量を指定してください。
ファイルの事前容量チェックを行うファイルシステムにおいて、ファイルの使用容量を指定しないジョブが使用したファイルの容量は、論理的な容量に反映されません。同時に実行される他のジョブの動作時にファイル容量不足が発生するなどの影響がでる場合があります。
資源定義の設定手順については、“Interstage Job Workload Server バッチ開発ガイド”の“資源定義設定ダイアログ”を参照してください。
ファイルの事前容量チェック機能を使用しない場合
ファイルの事前容量チェック機能を使用しない場合には、以下の2つがあります。
ジョブで、ファイルの事前容量チェック機能を利用しない場合
ジョブで、ファイルの事前容量チェック機能を利用しない場合は、ファイルシステム設定ファイルに設定されていないファイルシステムを使用してください。
資源定義に、ファイルシステム設定ファイルに設定されていないファイルシステムのファイルを指定します。
ファイルの事前容量チェック機能全体を無効にして運用する場合
ファイルの事前容量チェック機能全体を無効にして運用する場合は、バッチ実行サービス用チューニングファイルに指定します。
ファイルの事前容量チェック機能を無効にする場合については、“Interstage Job Workload Server セットアップガイド”の“ファイルの事前容量チェック機能の設定”を参照してください。