複数の実行単位と.NETJava の背景

ASP.NET やサーブレット コンテナーをはじめとする .NET リモート処理 Java サーバー アプリケーションなどの .NET サーバーアプリケーションは、通常、複数のユーザーにより利用され、その各ユーザーが他のユーザーと同時にセッションを実行しますが、COBOL アプリケーションは、従来、それぞれが独立した単一セッションで実行されます。.NET では、サーバー アプリケーションがアプリケーション ドメインによって実行および制御されます。Java では、サーバー アプリケーションはコンテナー内で実行されます。アプリケーション ドメイン コンテナーは、同時に複数のアプリケーション インスタンスを実行できます。

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

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

既存の手続き型 COBOL を変更する必要はありません。

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