OS/VS COBOL の NOENDJOB/ENDJOB コンパイラー・オプションは、言語環境プログラム・ライブラリーを使 用して実行するときは、OS/VS COBOL ライブラリーを使用して実行するときとは別の結果を生成 します。NOENDJOB を指定してOS/VS COBOL のもとで実行するときは、サブプログラムには常に最後に 使われた状態で入ります。
言語環境プログラム・ランタイム環境では、RES および NOENDJOB を指定してコンパイルされたプリ ロードされていない OS/VS COBOL サブプログラムが終了すると、プログラムおよび内部作業域 は削除されます。外部作業域 (GETMAIN を使用して獲得されたストレージ) および ライブラリー・ルーチンは動的ストレージに残ります。NOENDJOB ではなく ENDJOB を使用した場合、外部作業域およびライブラリー・ルーチン も削除されることを除けば、本質的な違いはありません。
Enterprise COBOL プログラムおよびそのリソース (すべての作業域およびライブラリー・ ルーチン) は常に終了時に削除されるので、ENDJOB および NOENDJOB が言語環境プログラム・ランタイム 環境で機能する方法によって、Enterprise COBOL プログラムと OS/VS COBOL プログラムの両方が、最後に使われた状態に関して同様に扱われます。
OS/VS COBOL ランタイム環境では、プリロードされていない COBOL プログラムを起動した IMS トラ ンザクションを実行するときに強く推奨されるコンパイラー・オプションは ENDJOB でし た。
VS COBOL II ランタイム環境で LIBKEEP ランタイム・オプションを使用する 場合、ENDJOB を指定してコンパイルされた OS/VS COBOL プログラムは NOENDJOB と同様に 扱われました。プリロードされた OS/VS COBOL プログラムの場合は NOENDJOB が必須でした。
注: LRR を使用するときは、NOENDJOB 動作が常に有効です。