.NETJava での複数の実行単位のアプリケーションの開発

注: 次の説明はマネージ COBOL のみに該当します。

どのような既存の COBOL プログラムでも、.NETJava のマルチユーザー環境で使用することができます。手順は次のとおりです。

  1. COBOL クラス ライブラリのプロジェクトを作成して、そのプロジェクトに手続き型 COBOL プログラムを追加します。
  2. プロジェクトを再ビルドします。

    これにより、COBOL プログラムはインスタンス化が可能なクラスとして表現されます。プログラムはライブラリ (.dll) としてパッケージ化されます。直接実行できる実行形式としてはコンパイルされません。

呼び出される COBOL プログラムが手続き型であるかオブジェクト指向型であるかに関係なく、その COBOL を呼び出すプログラムが必要です。呼び出し側プログラムは、C# や COBOL など、どの .NET 言語で作成してもかまいません。

  1. 呼び出し側プログラムのプロジェクトを作成します。たいていの場合、どの種類のプロジェクトでも構いません。プロジェクトには次への参照を追加します。
    • MicroFocus.COBOL.RuntimeServices アセンブリ。
    • MicroFocus.COBOL.Runtime アセンブリ。呼び出し側プログラムを、COBOL 以外の .NET 言語で作成する場合のみに必要です。
    • 呼び出したい COBOL クラス ライブラリが含まれるプロジェクト。
  2. 呼び出し側プログラムのプロジェクトを作成します。
  3. 呼び出し側プログラムで、MicroFocus.COBOL.RuntimeServices.RunUnitcom.microfocus.cobol.runtimeservices.RunUnit コンストラクターを使用して実行単位を作成します。
  4. Try ... Finally 構文を使用して、プログラムが失敗した場合に確実に実行単位が破棄されるようにします。
  5. RunUnit.Call() メソッドを使用して COBOL クラスを呼び出すか、または次の手順を行います。
    • 確実に、すべてのパラメーターで .NET 標準データ型を使用するようにします。また、呼び出される COBOL がこれらの .NET 標準データ型を受け取れるようにします。
    • パラメーターは Java プリミティブ データ型にします。
    • 呼び出す手続き型 COBOL プログラムのインスタンスを作成します。
    • RunUnit.Add() メソッドを使用して、プログラム インスタンスを新しい実行単位に追加します。
    • 新しい実行単位内でプログラム インスタンスを起動します。
  6. StopRun() メソッドを使用して、実行単位の使用終了後に、実行単位を破棄します。
注:
  • 実行単位によりランタイム エラーが発生した場合、System.ApplicationExceptionjava.lang.RuntimeException がスローされます。
  • 複数の言語を使用する環境におけるオブジェクト指向 COBOL プログラムでは、静的メソッドおよびデータは、ランタイム エラーの原因となるため使用しないでください。
  • データ アクセスが同期化されるようにしてください (実行単位が、それぞれ異なるスレッドで実行されるため)。

MicroFocus.COBOL.RuntimeServices アセンブリ内の RunUnit クラスの詳細は、次を参照してください。RunUnit Class

RunUnit クラスの詳細とその他の例については、com.microfocus.cobol.runtimeservices に関する文書を参照してください (トピック『com.microfocus.cobol.runtimeservices』を参照してください)。