PC またはサーバーで動作する最新のアプリケーションは、マルチユーザー環境での複数のユーザーによるユーザー間のセッションの同時実行など、複数のインスタンスの並列実行に対応する必要があります。
多くの COBOL アプリケーションは伝統的にシングル ユーザー プログラムであり、それぞれ独立した単一のセッションとして動作するため、マルチユーザー環境での動作には対応していません。同じアプリケーションのインスタンスを複数同時に実行しようとした場合、当然ですが同じリソース セットが複数のユーザーによって使用されるため、ファイル ロック、メモリ アイソレーション障害などの問題が発生する可能性があります。
コードを書き直せばこの問題を修正できますが、大幅なコードの変更が必要です。
Micro Focus Enterprise Developer は、同じプロセスに共存できる実行単位と呼ばれるコンストラクトによって、この問題を解決します。実行単位とは、同じアドレス スペース、ロック テーブル、および OpenESQL 接続を共有する 1 つ以上のプログラムの集合です。ランタイム サービス タイプ RunUnit を使用することで、同じプロセスで複数の実行単位を作成できます。その実行単位はそれぞれ隔離されます。
1 つの実行単位内の COBOL プログラムは通常、他の実行単位内のプログラムのメモリにはアクセスしません。それらは隔離されています。また、ファイル ロックは実行単位ごとに適用されます。1 つの実行単位内のプログラムがファイル ロックを適用した場合、同じプロセス中の他の実行単位内のファイル処理中のプログラムからアクセスできなくなります。
実行単位は、ランタイム アセンブリ Micro Focus Runtime (Interop RuntimeServices) (プロジェクトでは MicroFocus.COBOL.RuntimeServices への参照となる) (.NET 用) およびランタイム クラス com.microfocus.cobol.runtimeservices.RunUnit (JVM COBOL 内) によって指定されます。
これを行うには、呼び出し元のプログラムで実行単位を 1 つ作成して、そのプログラムを含む COBOL 型のインスタンスを 1 つ作成します。これにより、プログラムのインスタンスをその新しい実行単位内で起動できます。
既存の手続き型 COBOL を変更する必要はありません。