iSeriesC ファイル SHARE 属性

ファイル SHARE 属性は、iSeriesC 環境での EGL プログラムの振る舞いに影響します。

下の表に、iSeries® ファイル SHARE 属性に基づく特定のファイル操作および一般ファイル操作でのプログラムの動作を示します。

表 1. SHARE 属性に対するプログラムの動作
対象 SHARE(*YES) SHARE(*NO)
ファイル内のレコード位置 プログラム間でレコード位置が共有される。 プログラム間でレコード位置は独立している。
close ステートメント (COBOL CLOSE ステートメントとして実装) プログラムの開始時にファイルが既に開いていたかどうかに応じて、仮想または絶対。 ファイルの絶対 CLOSE。レコード位置は失われます。(低いパフォーマンス)
各ファイルに対する EGL ファイル I/O ステートメントの初回使用 (プログラム内での同じファイルに対するその他の I/O ステートメントの使用に応じて、INPUT、 OUTPUT、または INPUT-OUTPUT 句が指定された COBOL OPEN ステートメントとして部分的に実装)
  • ファイルを使用する各プログラム内で実行される必要がある。
  • OPEN 句に、ファイルを実際に開いたプログラムのファイル・オープン・タイプと互換性がない場合は、実行時ハード・エラーが発生する。(V6.0 互換モードで稼働しており、vgVar.handleHardIOErrors が 1 の場合、プログラム・ロジックによりエラーが処理される。vgVar.handleHardIOErrors が 1 に設定されていない場合は、プログラムが終了する。)
  • ファイルを使用する各プログラム内で実行される必要がある。
  • ファイル OPEN 句はプログラムごとに独立しており、相互に互換である必要はない。
プログラムが終了する任意の時点
  • メイン EGL 実行単位プログラムの場合、実行単位内のすべてのファイルが閉じるが、その影響は、プログラムの開始時にファイルが既に開いていたかどうかに応じて、仮想または絶対である。
  • 呼び出し先 EGL プログラムの場合、現在の EGL 実行単位でプログラムが再始動されると、ファイルは開いた状態のままとなり、レコード位置が保存される。
  • メインプログラムが終了するまで、ライブラリー内のファイルは開いた状態のままになる (つまり、1 つのライブラリー内でファイル入出力を実行できる)。ただし、多数の EGL ソース (その他のライブラリー、メインプログラム、または呼び出し先プログラムなど) から呼び出される。
  • メイン EGL 実行単位プログラムの場合、実行単位内のすべてのファイルが閉じ、影響は絶対である。
  • EGL ライブラリーまたは呼び出し先 EGL プログラムの場合、現在の EGL 実行単位でプログラムが再始動されると、ファイルは開いた状態のままとなり、レコード位置が保存される。

フィードバック