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

複数呼び出しの指定

同じジョブ内で、複数のカタログ式プロシージャーを呼び出す ことができます。また、同じジョブ内で同じカタログ式プロシージャーを複数回呼び出す こともできます。 これらのカタログ式プロシージャーの 2 つ以上に同一の リンク・エディット・プロシージャー・ステップが関与しない限り、 特別な問題が起こることはないと思われます。 複数のカタログ式プロシージャーが同一のリンク・エディット・プロシージャー・ステップ に関与する場合には、すべてのロード・モジュールを実行できるようにするために、 以下に示す予防策をとる必要があります。

リンケージ・エディターがロード・モジュールを作成する場合、 リンケージ・エディターはロード・モジュールを SYSLMOD という 名前の DD ステートメントで定義された標準データ・セットに入れます。 バインダーがプログラム・オブジェクトを作成する場合、バインダーは、 作成したプログラム・オブジェクトを、SYSLMOD という 名前の DD ステートメントで定義された PDSE に入れます。 リンケージ・エディターの NAME ステートメントがない場合、 リンケージ・エディターまたはバインダーは DSNAME パラメーターで指定された メンバー名をモジュール名として使用します。 標準のカタログ式プロシージャーでは、SYSLMOD という名前 の DD ステートメントは常に、メンバー名 GO の付いた 一時ライブラリー &&GOSET を指定します。

2 つの PL/I プログラムをコンパイル、バインド、および実行するために、 同じジョブの中でカタログ式プロシージャー IBMZCBG を 2 回使用し、 バインダーが作成する 2 つのプログラム・オブジェクトのそれぞれに 名前を付けなかった場合は、最初のプログラム・オブジェクトが 2 回 実行され、2 番目のプログラム・オブジェクトはまったく実行されません。

これを防ぐには、次に挙げる方法のうちどれか 1 つを使用します。

プログラム・オブジェクトにメンバー名を割り当てるには、SYSLMOD DD ステートメントに DSNAME パラメーターを指定して、 リンケージ・エディターの NAME オプションを使用することができます。 このプロシージャーを使用するとき、プログラムを実行する EXEC ステートメントが、 実行されるモジュール名を SYSLMOD DD ステートメント で参照する場合は、メンバー名は NAME オプション上の名前と同じで なければなりません

また、EXEC プロシージャー・ステートメントで GOPGM を使用して、 プログラムごとに異なる名前を付けるという別の方法もあります。 次に例を示します。

 //  EXEC IBMZCBG,GOPGM=GO2

Terms of use | Feedback

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