JVM COBOL でのファイル ハンドラーの使用

JVM COBOL アプリケーション内のファイル処理操作は、ネイティブの Micro Focus ファイル ハンドラーを使用するか、マネージ ファイル ハンドラーを使用して実行できます。

ネイティブの Micro Focus ファイル ハンドラーはネイティブ ランタイム システムによって提供され、マネージ ファイル ハンドラーは JRE 自体によって提供されます。

Eclipse 内の COBOL JVM プロジェクト タイプでは、ネイティブの Micro Focus ファイル ハンドラーがデフォルトで使用されます。プロジェクトのプロパティを表示すると、[Java Build Path] 設定の [Libraries] タブで、COBOL JVM Runtime System ライブラリに含まれる mfcobol.jar への参照を確認できます。この jar ファイルにより、Java からネイティブの Micro Focus ファイル ハンドラーにアクセスできるようになります。

場合によっては、Micro Focus ファイル ハンドラーを使用できないことがあります。このような場合、Visual COBOL では、マネージ ファイル ハンドラーが自動的に使用されます。たとえば、Tomcat、WebSphere、WebLogic などの環境で実行する場合、JVM ランタイム システムではネイティブ COBOL コードを実行できないため、マネージ ファイル ハンドラーが自動的に使用されます。もう 1 つの例は、RuntimeServices ライブラリ API を使用してマネージ RunUnit を作成し、外部ファイルにアクセスする場合です。この場合も、ネイティブ COBOL コードの実行が許可されないため、デフォルトではマネージ ファイル ハンドラーが使用されます。

どちらのファイル ハンドラーも利用可能な場合に、マネージ ファイル ハンドラーを使用するには、プロジェクトから mfcobol.jar を削除する必要があります。それには、COBOL JVM Runtime System ライブラリを削除します。また、mfcobol.jar が CLASSPATH で参照されていないことを確認します。COBOL JVM Runtime System ライブラリには引き続き必要なその他の .jar ファイル (mfcobol.jar 以外) も含まれているため、これらのファイルをプロジェクトに追加し直す必要があります。それには、[Libraries] タブで、[Add External Jar] オプションを使用して、必要な .jar ファイル(mfcobolrts.jarmfsqljvm.jar、および mfunit.jar) を追加します。

注: これらのファイルは、プロジェクトのインストール ディレクトリの bin または bin64 サブディレクトリにあります。プロジェクトが対象とする JRE のビット固有のファイルを選択する必要があります。

コマンド ラインから作業する場合は、同様に、CLASSPATH で上記のファイルが正しく含まれていること、または除外されていることを確認する必要があります。たとえば、mfcobol.jar が除外されていることを確認するには、set CLASSPATH=%CLASSPATH:mfcobol.jar=% のように指定します。

マネージ ファイル ハンドラーの使用には固有の制限がいくつかあります。詳細については、「マネージ COBOL のファイル処理に関する制約事項」を参照してください。