複数の実行単位を使用するアプリケーションの開発

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


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

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

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


  1. 呼び出し側プログラムのプロジェクトを作成します。たいていの場合、どの種類のプロジェクトでも構いません。プロジェクトには次への参照を追加します。
    • MicroFocus.COBOL.RuntimeServices アセンブリ。
    • MicroFocus.COBOL.Runtime アセンブリ。呼び出し側プログラムを COBOL 以外の .NET 言語で作成する場合のみに必要です。
    • 呼び出したい COBOL クラスライブラリが含まれるプロジェクト。
  2. I呼び出し側プログラムで、MicroFocus.COBOL.RuntimeServices.RunUnit コンストラクタ を使用して実行単位を作成します。

    Try ... Finally 構文を使用して、プログラムが失敗した場合に確実に実行単位が破棄されるようにします。

    RunUnit.Call() メソッドを使用して COBOL クラスを呼び出すか、または次の手順を行います。


    • 確実に、すべてのパラメータで .NET 標準データ型を使用するようにします。また、呼び出される COBOL がこれらの .NET 標準データ型を受け取れるようにします。
    • 呼び出す手続き型 COBOL プログラムのインスタンスを作成します。
    • RunUnit.Add() メソッドを使用して、プログラムインスタンスを新しい実行単位に追加します。
    • 新しい実行単位内でプログラムインスタンスを起動します。

    StopRun() メソッドを使用して、実行単位の使用終了後に、実行単位を破棄します。

注:
  • 実行単位によりランタイムエラーが発生した場合、System.ApplicationException がスローされます。
  • 混合言語環境でオブジェクト指向 COBOL プログラムを使用する場合、静的メソッドとデータの使用方法に注意してください。 静的メソッドとデータは、すべての実行単位でそれらのメソッドまたはデータを共有する必要がある場合のみに使用します。 また、データアクセスが同期化されるようにしてください (実行単位が、それぞれ異なるスレッドで実行されるため)。