ファイル管理機能は、ジョブで使用するファイルを管理します。
ファイル管理機能がもつ機能は、以下のとおりです。
注意
ファイル管理機能では、アプリケーション内で行う、ファイル操作(open、read、write、close)については制御を行いません。
したがって 、ファイルの追加書き/上書きなども業務アプリケーションのファイル操作に依存します。
本製品のサーバのプラットフォームがWindows(R)の場合は、ファイル容量の事前チェック機能はサポートしていません。このため、ジョブの実行中にディスクの容量不足が発生し、アプリケーションの書込みが失敗する可能性があります。ジョブで使用するファイルの容量を十分に見積もり、ディスクの容量不足が発生することがないようにしてください。
使用できるファイルシステム
ファイル管理機能は、以下のファイルシステムを使用できます。
UFS
ZFS
(RHEL5(Intel64)、またはRHEL6(Intel64)の場合)
ext3
(RHEL7(Intel64)の場合)
ext3
ext4
XFS
NTFS
複数のジョブが、同じファイルを更新する場合に発生するファイルの破壊を防止するため、ファイルの排他機能は、バッチジョブ定義の指定にもとづいて、ジョブ単位にファイルの排他を獲得します。
また、ジョブステップ終了時またはジョブ終了時に、ジョブが使用したファイルの排他を解除します。このため、アプリケーションや運用で排他機構を用意する必要がなくなります。
ファイルを更新するジョブを実行する場合は、そのジョブが終了するまで、ほかのジョブがファイルの参照、および更新できないようにする必要があります。また、複数のジョブがファイルの参照だけを行う場合は、それらのジョブの間で、同一のファイルを同時に使用できる必要があります。
ファイルの排他機能は、これらの要件を満たすため、以下の種類があります。
排他モード
ほかのジョブからのファイルの使用を抑止します。
共用モード
共用モードを指定した複数のジョブで同じファイルを参照できます。
また、ファイルが先行ジョブですでに使用されている場合、後続ジョブの動作を指定できます。指定の種類は、以下のとおりです。
待ち指定
ファイルの排他が獲得できるまで当該ジョブの実行を待ち合わせます。
エラー指定
ジョブがエラー終了します。
注意
ファイルの排他機能は、ファイル管理独自の論理による排他制御を行うため、バッチ実行基盤(COBOL/C)で実行していないアプリケーションや一般のコマンドとは排他しません。
バッチジョブ定義のジョブステップ定義の資源に設定していないファイルは、ファイル管理機能の対象外であるため、ファイルの排他を行いません。
参照
ファイルの排他の種類、および排他が競合したときの動作は、バッチジョブ定義で指定します。詳細は、“Interstage Job Workload Server バッチ開発ガイド”の“ファイルの排他機能”を参照してください。
ファイルの割当て機能は、ジョブステップ開始時に、バッチジョブ定義に設定したファイルを、バッチアプリケーションが動作するうえで必要なファイルに割り当て、利用できる状態にします。ジョブステップまたは、ジョブの終了時に、該当ジョブステップが使用したファイルの割当てを解除します。これにより、ジョブのファイルの割当てに関する制御論理の開発を軽減できます。
また、ジョブステップ開始時に、バッチジョブ定義に指定したファイルの論理的な名称(資源名)とファイルの物理的なパスの対応関係をアプリケーションに通知します。
これにより、アプリケーションに、物理的なパスを直接、記述する必要がなくなるため、アプリケーションの汎用性が高くなります。
ファイルの割当て方法
ファイルの割当て方法は、以下のとおりです。
指定項目 | 割当て方法 | |
---|---|---|
新規 | ファイルが存在した場合は異常終了 | ファイルが存在しない場合は、新規ファイルを排他モードで割り当てます。 |
ファイルが存在した場合は正常終了 | ファイルが存在しない場合は、新規ファイルを排他モードで割り当てます。 | |
既存 | 更新 | 既存ファイルを排他モードで割り当てます。 |
参照(排他) | 既存ファイルを排他モードで割り当てます。 | |
参照 | 既存ファイルを共用モードで割り当てます。 |
ファイルの割当て解除方法
ファイルの割当て解除方法は、以下のとおりです。
なお、ファイルの割当て解除方法には、ジョブステップが正常終了した場合と異常終了した場合についてそれぞれ指定できます。
指定項目 | 解除方法 |
---|---|
削除 | ジョブステップ終了時にファイルを削除します。 |
保持 | ジョブステップ終了後もファイルを保持します。 |
後続ジョブステップへ渡す | ジョブステップ終了時もファイルを保持し、後続ジョブステップで指定した解除方法で解除されます。 |
参照
ファイルの割当て、および割当て解除の詳細は、“Interstage Job Workload Server バッチ開発ガイド”の“ファイルの割当て機能”を参照してください。
割当てを行うファイル
ファイルの割当て機能が、割り当てることができるファイルは、以下のとおりです。
なお、バッチジョブ定義のジョブステップ定義の資源に設定していないファイルは、ファイル管理機能の対象外であるため、ファイルの割当てと割当て解除を行いません。
一時ファイル
ジョブ内に閉じて使用する作業ファイルです。ジョブ内で一時的に使用する場合や、ジョブステップ間の情報の引継ぎに使用する場合に、一時ファイルを使用できます。複数のジョブ間でデータを引き継ぐファイルとして、一時ファイルを使用できません。
一時ファイルのファイル名は、ジョブ開始時に、ファイル管理機能が決定します。一時ファイルは、ジョブ開始時に、ファイル管理機能が作成します。ジョブ終了時に、ファイル管理機能が削除します。このため、利用者は、一時ファイルのファイル名を意識することなく使用できます。
非一時ファイル
ジョブ間で使用し、ジョブが終了しても削除されないファイルです。ジョブ間の情報を引継ぐ場合や、ジョブ終了後に処理結果を残す場合などに使用します。
インラインファイル
ジョブ内に閉じて使用する一時ファイルです。
書き込みたいデータを事前に定義することで、ファイル管理機能が、定義したデータを書き込んだファイルを作成します。
作成するファイルは、アプリケーション種別により以下の違いがあります。
COBOLアプリケーションの場合
COBOLファイルの行順ファイルになります。
レコード長を指定します。UTF-16を設定する場合、レコード長は2の倍数になるようにしてください。
インラインファイルにデータを書き込む際に、設定したレコード長に足りない部分には、空白文字が設定されます。文字コードにUTF-8を設定した場合は半角空白、UTF-16を設定した場合は全角空白を設定します。EUC/SJISを設定した場合は、半角空白を設定します。
文字コードにUTF-8を設定した場合、英数字項目(PIC X)として読み込む必要があります。文字コードにUTF-16を設定した場合、日本語項目(PIC N)として読み込む必要があります。
指定したレコード長を超えた場合、および、置換えパラメタ、資源名の置換えや、文字コード変換により、指定したレコード長を超えた場合は、エラーになります。
COBOLファイル(行順ファイル)で文字コードにUnicodeを使用する場合の詳細は、”NetCOBOL使用手引書”の“Unicode”を参照してください。
C言語アプリケーションの場合、およびユーティリティの場合
終端改行区切りのテキストファイルになります。
ファイルパスの論理化機能は、ジョブの実行時に、そのジョブで使用するファイルの格納先のディレクトリを論理的なディレクトリ名から絶対パス名に置き換えて処理を行います。
以下にファイルパスの論理化機能を使用した場合の、ファイルの割当ておよび解除の流れを示します。
ファイルの格納先の論理的なディレクトリを“論理ディレクトリ”と呼びます。
ポイント
ジョブの設計時にバッチアプリケーションで使用するパス名を決定する負担が軽減できます。
ファイルシステム構成の変更があった場合などにバッチジョブ定義の汎用性が高まります。
参照
ファイルパスの論理化機能の詳細は、“Interstage Job Workload Server バッチ開発ガイド”の“ファイルパスの論理化機能”を参照してください。
バッチジョブ定義の指定からNetCOBOLの機能を利用することができます。
COBOLのバッチアプリケーションがアクセスするファイルについて以下の機能を提供します。
ファイルの連結
ダミーファイル
ファイルの追加書き
その他のNetCOBOL連携機能
ファイルの高速処理
DISPLAY文・ACCEPT文によるファイル入出力拡張機能
大容量ファイル
参照
ファイルのNetCOBOL連携機能の詳細は、“Interstage Job Workload Server バッチ開発ガイド”の“ファイルのNetCOBOL連携機能”を参照してください。
ファイルの事前容量チェック機能は、ジョブが使用するファイルシステムの容量を管理する機能です。ジョブが使用するファイルシステムの容量を、ファイル管理機能上の論理的な容量で管理します。
ファイル容量の事前確保
ジョブの実行の際、ジョブステップの開始時に、そのジョブステップで使用するファイルの容量を論理的な容量上に確保してから、バッチアプリケーションを実行します。
ジョブステップで使用するファイルの容量が確保できない場合は、バッチアプリケーションを実行せずジョブステップを異常終了させます。これにより、バッチアプリケーションの実行中に容量不足が発生してジョブが異常終了することがなくなります。
ファイル容量の監視
また、バッチアプリケーションが使用したファイルの容量を監視します。ファイルの容量が事前に指定した容量を超えた場合や、資源定義で読込み用に定義されたファイルの容量に変更があった場合は、システムログとジョブログに警告メッセージを出力します。
注意
ファイルの事前容量チェック機能は、バッチ実行基盤で動作するジョブの実行を通して、ジョブが使用するファイルシステムの容量を管理します。バッチ実行基盤のジョブ以外の手段で作成したファイルやバッチ実行基盤以外の手段で削除したファイルは、ファイルの事前容量チェック機能の対象になりません。
このため、ファイルの事前容量チェックを行うファイルシステムでは、バッチ実行サービスの運用中にバッチ実行基盤以外の手段によるファイル操作を行わないでください。行った場合、ファイルの事前容量チェック機能が正しく動作できなくなります。
参照
ファイルの事前容量チェック機能については、“Interstage Job Workload Server バッチ開発ガイド”の“ファイルの事前容量チェック機能”を参照してください。
ファイルの世代管理機能は、バッチアプリケーションが実行時に作成するファイル資源のバックアップを保存し、ファイルの世代を管理します。
ファイルの世代管理機能で作成する世代ファイルは以下のような場面で使用することができます。
バッチ処理において、ジョブ間で引き継ぐファイルの世代を管理する場合
バッチ処理間(同一バッチ実行環境内のバッチ業務、および他サーバのバッチ処理)で引き継ぐファイルの世代管理をする場合
ポイント
バッチ業務処理において途中のジョブが異常終了した場合や、バッチ業務間でファイルを引き継ぐバッチ処理において後続のバッチ業務処理でデータをロストした場合などに、処理が完了済のジョブを実行しなおすことなく、保存されている世代ファイルを使用して業務を継続することができます。
世代ファイルを使用する運用の例
ファイルの世代管理機能で作成する世代ファイルを使用する運用の例を以下に示します。
月曜日から金曜日に起動するバッチジョブの出力ファイルを1週間分保存する場合
1日3回実行されるバッチジョブの出力ファイルを30世代保存する場合
ポイント
時間単位、運用日単位など業務の運用周期単位に蓄積された世代ファイルを入力として、前の世代の業務を再処理することができます。
参照
ファイルの世代管理機能については、“Interstage Job Workload Server バッチ開発ガイド”の“ファイルの世代管理機能”を参照してください。
インラインファイル機能は、アプリケーションを呼び出す前に、バッチジョブ定義に定義されているデータを書き込んだファイルを作成します。このため、一時的に必要なデータを書き込んだファイルを事前に用意する必要がなくなります。
インラインファイルのファイル名は、ジョブ開始時に、ファイル管理機能が決定します。インラインファイルは、ジョブ開始時に、ファイル管理機能が作成し、ジョブ終了時に、ファイル管理機能が削除します。このため、利用者は、インラインファイルのファイル名を意識することなく使用できます。
インラインファイルのデータには、任意の文字列、置換えパラメタ、および資源名が指定できます。資源名を指定した場合は、資源名に対応するファイルパスに置換えます。指定された置換えパラメタ、および資源名が存在しない場合、指定した文字列をそのまま書き込みます。
参照
インラインファイル機能については、“Interstage Job Workload Server バッチ開発ガイド”の“インラインファイル機能”を参照してください。