複数の実行単位および Java の背景

サーブレット コンテナーなどの Java サーバー アプリケーションは、通常は複数のユーザーが使用し、その各ユーザーが他のユーザーと同時にセッションを実行します。これに対し、COBOL アプリケーションでは従来、それぞれが独立した単一セッションで実行されます。Java では、サーバー アプリケーションはコンテナー内で実行されます。コンテナーは、同時に複数のアプリケーション インスタンスを実行できます。

デフォルトでは、手続き型 COBOL アプリケーションがコンテナー内で実行されると、そのアプリケーションはデフォルトの COBOL 実行単位内で実行され、定義上同じアドレス空間を共有する複数のスレッドが使用されます。このようなアプリケーションが同時に何度か実行されると、同じ実行単位が使用され、結果的にすべての実行で同じデータが共有されるため、問題が発生する可能性があります。

マルチユーザー環境では、COBOL アプリケーションは、アプリケーションの各インスタンスが専用の実行単位で実行されるように、複数の実行単位を使用する必要があります。これを行うには、次の手順を実行します。

既存の手続き型 COBOL は変更されません。

REENTRANT または ILSTATIC 指令でコンパイルしない限り、すべての COBOL プログラム、またはインスタンス データ/メソッドを持つ COBOL クラスを、複数の実行単位で使用できます。