.NET の既知の問題点および制約事項

次の各セクションでは、.NETで使用するアプリケーションを Enterprise Developer を使用して作成する際の制限事項について説明します。

.NET バージョン

Enterprise Developer では、.NET バージョン 6 で使用する COBOL アプリケーションを作成してディプロイできます。

COBOL 言語

.NET にディプロイする COBOL アプリケーションには、次の機能を含めることはできません。

  • ACUCOBOL-GT ファイル処理
  • CBL_THREAD_KILL ライブラリ ルーチン
  • ILVERIFY(CHECK) コンパイラ指令オプション
  • JSON PARSE 文
  • 2 番目のスレッドの STOP RUN 文
  • XML プリプロセッサまたは XML 拡張 (ただし、XML PARSE および XML GENERATE 文は使用できます)

COBOL ランタイム構成

.NET にディプロイされるアプリケーションのランタイム動作をアプリケーション構成ファイルを使用して構成する必要がある場合は、.NET Framework コンソール アプリケーション用の .exe.config ファイルではなく .dll.config ファイルを使用する必要があります。

データベース アクセス

  • .NET 6 にディプロイされる COBOL アプリケーションで OpenESQL CONNECT 文を使用する必要がある場合は、CONNECT 文の書き方 6 を使用する必要があります。詳細については、「CONNECT」を参照してください。
  • SQL(DBMAN=ODBC) 指令は、.NET 6 COBOL SQL プログラムでは使用できません。SQL(DBMAN=ADO) を使用する必要があります。

ネイティブおよび .NET ファイル ハンドラー

デフォルトでは、.NET プロジェクトの COBOL アプリケーションは、ファイル処理操作にネイティブ ファイル ハンドラーを使用します。プロジェクトのディプロイおよび実行時にネイティブ ファイル処理機能を利用できるようにするために、.NET プロジェクトをパブリッシュすると、パブリッシュされたファイルに必要なネイティブ ランタイム システムとファイル ハンドラーが (MicroFocus.COBOL.Runtime パッケージの一部として) 含まれます。

メイン プログラムが COBOL ではない Windows 上のローカル .NET アプリケーションをデバッグする場合、たとえばメイン プログラムが C# である場合は、適切なファイル ハンドラーが使用されていることを確認する必要があります。そうしないと、最初の COBOL ファイル入出力文でランタイム システム エラー COBRT198 (「ロードできない」) が発生します。

デフォルトでは、32 ビットのネイティブ バージョンのファイル ハンドラーが利用できます。これをアプリケーションで使用するには、メイン プログラムのプロジェクトが x86 プラットフォームを対象にビルドされている必要があります。

または、ネイティブ ランタイム システムに依存しないようにするために、.NET ファイル ハンドラーを使用することもできます。プロジェクトで指令 CALLFH (EXTFH) および CALLSORT (EXTSM) を指定することにより、ネイティブ ファイル ハンドラーではなく .NET ファイル ハンドラーを使用するように .NET プロジェクトを切り替えることができます。

Azure .NET へのディプロイ

デフォルトでは、.NET プロジェクトの COBOL アプリケーションは、ファイル処理操作にネイティブ ファイル ハンドラーを使用します。プロジェクトのディプロイおよび実行時にネイティブ ファイル処理機能を利用できるようにするために、.NET プロジェクトをパブリッシュすると、パブリッシュされたファイルに必要なネイティブ ランタイム システムとファイル ハンドラーが (MicroFocus.COBOL.Runtime パッケージの一部として) 含まれます。

.NET プロジェクトを Azure .NET 環境にディプロイする場合は、代わりにプロジェクトで .NET ファイル ハンドラーを使用して、プロジェクトでネイティブ C ランタイムのディプロイも必要になる依存関係を回避する必要があります。プロジェクトで指令 CALLFH (EXTFH) および CALLSORT (EXTSM) を指定することにより、ネイティブ ファイル ハンドラーではなく .NET ファイル ハンドラーを使用するように .NET プロジェクトを切り替えることができます。

Windows 用の Enterprise Developer ビルド ツール

Windows 用の Enterprise Developer ビルド ツールを使用して .NET プロジェクトをビルドできるようにするには、Microsoft の Visual Studio 2019 または 2022 用ビルド ツールを使用している必要があります。詳細については、「Windows 用の Enterprise Developer ビルド ツールを使用した .NET プロジェクトのビルド」を参照してください。

オペレーティング システム

次の表に、Enterprise Developer を使用してパブリッシュした .NET 向け COBOL アプリケーションをディプロイできるアーキテクチャとオペレーティング システムを示します。サポートされているオペレーティング システムのバージョンは、Enterprise Developer でサポートされるバージョンです。

オペレーティング システム アーキテクチャ
Red Hat Enterprise Linux x64
SUSE Enterprise Linux x64
Ubuntu x64
CentOS x64
Windows クライアント x64
x86
Windows Server x64
x86
注:

次のオペレーティング システムは .NET でサポートされていますが、COBOL アプリケーションのディプロイには使用できません。

  • MacOS
  • Docker で実行されている Windows コンテナー

Visual Studio バージョン

Enterprise Developer には .NET バージョン 6 が必要であり、.NET バージョン 6 は Visual Studio 2017 および 2019 でサポートされていないため、.NET で使用する COBOL アプリケーションを Enterprise Developer を使用して作成してディプロイするには、Visual Studio 2022 以降を使用している必要があります。

Enterprise Developer for Visual Studio 2017 または 2019 を使用して以前のバージョンの Enterprise Developerの .NET 対応プロジェクトを開くと、プロジェクトを開くことができないことを通知するエラーが発生します。

Windows フォーム デザイナー

[Windows Forms App (.NET)] プロジェクト テンプレートを使用して作成されたプロジェクトに Windows フォーム デザイナーを使用することはできません。