Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, プログラミング・ガイド

PL/I ファイルとデータ・セットの関連付け

ファイルのオープン

PL/I OPEN ステートメントを実行することにより、 ファイルとデータ・セットを関連付けることができます。 これを行うには、ファイルを記述している情報とデータ・セットを記述している 情報をマージする必要があります。 ファイルの属性とデータ・セットの特性の間に矛盾が検出されると、UNDEFINEDFILE 条件が発生します。

PL/I ライブラリーのサブルーチンは、データ・セットの骨組みデータ制御ブロックが作成されます。 これらのサブルーチンは、DECLARE ステートメント および OPEN ステートメントから得られるファイル属性と、 宣言された属性が暗黙設定するあらゆる属性を使って、 可能な限りデータ制御ブロックを完成させます。(図 19 参照を参照してください。) そのあと、これらのサブルーチンは、OPEN マクロ命令を出します。このマクロ命令は、 データ管理ルーチンを呼び出して、正しいボリュームがマウントされているかどうかをチェックし、 データ制御ブロックを完成させます。

データ管理ルーチンは、さらに必要な情報がないか調べるためにデータ制御ブロックを検査し、 次に、まず DD ステートメント内からその情報を検索し、最後に、 データ・セットが存在するかどうか、かつデータ・セット・ラベル内に標準ラベル が付いているかどうかを調べます。 新規データ・セットの場合は、データ管理ルーチンは、ラベル (必 要な場合) を作成し、そのラベルにデータ制御ブロックからの情報を入れます。

INPUT データ・セットの場合、属性が矛盾しない限り、PL/I プログラムは DCB 属性を指定変更できます。 OUTPUT データ・セットの場合、PL/I プログラムは DCB 属性を指定変更できません。 ただし、データ・セットのオープン時に欠落 DCB 属性があれば、その属性は PL/I プログラムから取得されます (プログラムでその属性が指定されている場合)。

DCB フィールドがこれらのソースの情報で埋められると、 制御は PL/I ライブラリー・サブルーチンに戻ります。 依然として値が入力されていないフィールドには、PL/I OPEN サブルーチン がデフォルトの情報を提供します。 例えば、LRECL が指定されていない場合は、BLKSIZE に与えられた値が提供されます。

図 19. オペレーティング・システムによる DCB への情報の組み込みの方法
オペレーティング・システムによる DCB への情報の組み込みの方法
ファイルのクローズ

PL/I CLOSE ステートメントを実行することにより、 関連付けられていたデータ・セットからファイルが切り離されます。PL/I ライブラリー・サブルーチンは、まず CLOSE マクロ命令を出し、 データ管理ルーチンから制御が戻ると、ファイルのオープン時に作成された データ制御ブロックを解放します。 データ管理ルーチンは、新規データ・セット用のラベルが書き込みを完了し、 既存データ・セットのラベルを更新します。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)