本セクションでは、Visual COBOL for Eclipse の最新および過去のリリースでの動作または使用法の重要な変更について説明します。これらの変更は、既存のアプリケーションの動作や、ツールの使用方法に影響を与える可能性があります。
リリース 8.0 のこれらの変更の最新リストについては、Micro Focus カスタマー ケア Web サイトの製品ドキュメント セクションで入手できる本製品のリリース ノートを参照してください。
AIX プラットフォームでは、cob コマンドを使用して C または C++ プログラム (cob -xc filename.c など) をコンパイルする場合、使用するコンパイラはオペレーティング システムのバージョンに依存します。AIX 7.2 では XL ベースのコンパイラを使用し、AIX 7.3 では Clang ベースのコンパイラを使用します。
リリース 7.0 のこれらの変更の最新リストについては、Micro Focus カスタマー ケア Web サイトの製品ドキュメント セクションで入手できる本製品のリリース ノートを参照してください。
Solaris、IBM Z System の RedHat、IBM Z System の SUSE、および Ubuntu の各プラットフォームについて、AutoPass と呼ばれる新しいライセンス モデルを使用してライセンスが提供されるようになりました。これらのプラットフォームとライセンスは、既存の SafeNet ライセンス テクノロジを使用している場合、ソフトウェア ライセンスおよびダウンロード ポータル (sld.microfocus.com) からは入手できません。上記のプラットフォームに対する AutoPass ライセンスを入手するには、アカウント マネージャーに連絡して実際の要件を伝え、サポート インシデントを報告してリクエストを追跡します。
ファイル ハンドラーでサポートされる最大レコード長は 62KB です。この制限を超えるレコードを作成すると、コンパイル時に COBCH0649 エラーが生成されます。これらの大きなレコードを利用するプログラムは引き続き使用できますが、ファイル処理操作で悪影響が生じる可能性があります。
ISO2002 指令で、異なるレベルの ISO2002 機能を提供するオプションがサポートされるようになりました。ISO2002"1" は、Server Express および Net Express でサポートされる機能を提供し、ISO2002"2" は、それらの機能に加えて、Visual COBOL 以降に追加された機能を提供します。Server Express/Net Express で ISO2002 指令を使用していて、Visual COBOL に移行する場合、ISO2002"2" による動作の変更の影響を受けるアプリケーションがある場合は ISO2002"1" を使用してください。
ODOSLIDE コンパイラ指令が設定されている場合、INITIALIZE 文の対象を可変長グループにすることはできません。以前のリリースでは、この場合も誤ってコンパイルが許可され、実行時に予期しない結果を招いていましたが、重大な構文エラーとして扱われるようになりました。
stackdump の生成は、Linux プラットフォーム (サポート対象の 32 ビットと 64 ビットの両方) でしか使用できなくなりました。以前は Solaris プラットフォームでも使用できましたが、サポートされなくなりました。
リバース デバッグおよびライブ記録機能は、undo.
io とは別にライセンスされてインストールされます。Micro Focus Marketplace から拡張機能をダウンロードして、リバース デバッグ機能を有効にできます。
JVM COBOL プログラムを REENTRANT"2" でコンパイルした場合に、インスタンス メソッドが生成されるようになりました。以前は、これらのプログラムをコンパイルすると静的メソッドが生成されていました。これらのメソッドが静的であることに依存する COBOL 以外のコードについては、これに対応するようにコードをリファクタリングする必要があります。
AIX プラットフォームでは、cob コマンドを使用して C または C++ プログラム (cob -xc filename.c など) をコンパイルする場合、使用するコンパイラはオペレーティング システムのバージョンに依存します。AIX 7.2 では XL ベースのコンパイラを使用し、AIX 7.3 では Clang ベースのコンパイラを使用します。
リリース 6.0 のこれらの変更の最新リストについては、Micro Focus カスタマー ケア Web サイトの製品ドキュメント セクションで入手できる本製品のリリース ノートを参照してください。
最新のオペレーティング システムに対応するために、それらの操作性のガイドラインに合わせて細かな調整を継続的に行っています。OS レベルの機能の操作時に、以前は定義されていなかった動作が検出されるようになっています。
エラー RTS096 は、コード内で直接的または間接的に COBOL 機能を呼び出したプロセスにオペレーティング システムの fork() API の呼び出しが含まれている場合に発生します。
このエラーにより、最新のオペレーティング システムで確認しないままにしておくと実行時にデッドロック、クラッシュ、またはその他の障害が発生する可能性がある状況を早期に診断できます。これらの問題は断続的に発生することが多く、追跡するのが非常に困難です。
詳細については、サポート技術情報の記事 https://community.microfocus.com/t5/Visual-COBOL-Knowledge-Base/fork-rts64-Error-96-encountered-in-child-process/ta-p/1771191 を参照してください。
ライブラリ ルーチンの呼び出しプロトタイプとして本システムで提供されるコピーブック cbltypes.cpy および cblproto.cpy には、最新の構文の機能である CONSTANT キーワードが含まれています。これらのファイルを MF 指令と組み合わせて使用する場合は、現在のレベルである 21 に設定する必要があります。それ以外の場合は、指令を削除するか、これらのコピーブックを使用しないでください。
他の DBMS SQL COBOL プリコンパイラと同様に、OpenESQL が埋め込み SQL 標準に準拠するようになり、WHERE <column> = :hostvar 句でのグループ ホスト変数の使用が許容されなくなりました。これまでは、使用されていてもコンパイル時にフラグが付けられず、実行時に予期しない結果になることがありました。
JSON (RESTful) サービス インターフェイスについて、JSON メッセージ本文の最も外側 (ルート) の構造を常に JSON オブジェクトにするように IMTK で強制されなくなり、JSON 配列またはプリミティブもルートとしてサポートされるようになりました。JSON メッセージのルートは必ず匿名にする必要がありますが、インターフェイス マッパーにおいては、操作のインターフェイス フィールドで本文の最上位のフィールドとして匿名のルートを定義することが必要になりました。その際、本文の最上位のインターフェイス フィールドは入力と出力のいずれについても操作に複数含めることはできないため、メッセージの本文に含まれるインターフェイス フィールドはすべて本文の最上位のフィールドの子にする必要があります。6.0 より前の非準拠の JSON サービス インターフェイスはそのままで引き続きサポートされますが、インターフェイス マッパーで保存する際に 6.0 からの仕様が適用されます。
JVM COBOL コードのうち、NATIONAL または NATIONAL NUMERIC データ項目の IS NUMERIC テストを使用するコードや、CHECKNUM コンパイラ指令でコンパイルされたプログラムで NATIONAL NUMERIC データ項目を使用するコードについては、このリリースで再コンパイルする必要があります。このような構造を使用する以前の製品のコンパイル済みコードをこのリリースで実行すると、MissingMethodException エラーが生成されます。
6.0 より前のバージョンでビルドされた、Windows リソース コンパイラ (RC.exe) に依存するプロジェクトは、Eclipse でリビルドする必要があります。そうしないと、エラーが発生する可能性があります。これは、このバージョンの製品で RC.exe の場所が変更になったためです。影響を受けるプロジェクトは、マニフェスト ファイル (カーソル、フォント、アイコンなどを含めるために使用) を明示的に参照し、コマンド ラインから直接ビルドされるプロジェクトです。
この問題は、Eclipse IDE 内でプロジェクトを開いてビルドすると解決します (.cobolBuild がリビルドされて RC.exe の新しい場所が検出されるようになります)。引き続きコマンド ラインからプロジェクトを実行する場合は、PATH に RC.exe への参照を含めてください。
作業記憶域に OCCURS DEPENDING ON 指定を含むデータ項目が格納されている場合、ODOSLIDE が有効な状態のときは、それと同じかそれよりも上位の後続のデータ項目に VALUE 句を含めることはできません。そのようなデータ項目がある場合、エラー (COBCH1962) が生成されるようになりました。
ソース コードから VALUE 句を削除できない場合や ODOSLIDE を削除できない場合は、カスタマー ケアにお問い合わせください。
リリース 5.0 のこれらの変更の最新リストについては、Micro Focus カスタマー ケア Web サイトの製品ドキュメント セクションで入手できる本製品のリリース ノートを参照してください。
通信機能 (COMMS SECTION または COMMUNICATION SECTION) は以前から非推奨になっています。関連する特定の構文については、残っていてもコンパイラでは問題にはならず無視されていました。それらの構文が完全に許容されなくなり、含まれているとコンパイラでエラー (COBCH1895 Communication Facility not supported) が生成されるようになりました。ソースから該当するセクションを削除して再コンパイルする必要があります。
ランタイム エラー メッセージに行番号情報を含めると、プログラムの異常終了時に有用な診断支援が提供されます。これはすでに UNIX および Linux プラットフォームでのデフォルトの動作であり、Windows プラットフォームでもコマンド ラインを使用する場合のコンパイラのデフォルトの動作です。
デバッグ ビルドの場合、通常は ANIM コンパイラ指令を指定し、リリース ビルドの場合、通常はビルド スクリプトに ANIM 指令を指定しません。これらの状況では、以前は気付かなかった .idy ファイルの存在に気付くかもしれません。これらの .idy ファイルの生成は、行番号情報の生成以外のアプリケーションの動作やパフォーマンスには影響しません。.idy ファイルはアプリケーションの実行に必要ではないため、アプリケーションをデバッグする特定の要件がない限り、配布しないでください。
FTF (ファイル管理記述項) を渡して EXTFH または EXTSM を直接呼び出すアプリケーションは、FCD を正しく初期化する必要があります。これは、未使用または予約済みの領域をバイナリ ゼロで初期化する必要があることを意味します。そうしないと、たとえば EXTSM を呼び出す際に RTS114 エラーを受け取る場合があります。「ファイル制御記述 (FCD)」を参照してください。
エラー処理、終了処理のプロシージャ、またはシグナル ハンドラー内で coblongjmp() を呼び出すと、次のような致命的な実行時システム エラー メッセージが生成されるようになりました。COBRT131 coblongjmp() は現行のコンテキストから戻ることができない (致命的)
このシナリオは、以前は制約事項として明記されていましたが、今後の問題を防ぐために適用されるようになりました。このようなエラーを解決するには、コードをリファクタリングして、エラー処理、終了処理のプロシージャ、またはシグナル ハンドラーから coblongjmp() 呼び出しを削除します。
リリース 4.0 のこれらの変更の最新リストについては、Micro Focus カスタマー ケア Web サイトの製品ドキュメント セクションで入手できる本製品のリリース ノートを参照してください。
各問題の後に続く番号は、サポート インシデント番号と、その後に続く、報告された問題インシデント (Reported Problem Incident; RPI) 番号 (かっこ内) です。
コンパイラにより、「COBCH1888 Typedef is defined differently in another external program」という E レベルのメッセージが生成されるようになりました。これは、異なる外部プログラムが同じ typedef 名で競合する定義を持っている場合に生成されます。以前の定義が無視された場合に以前の動作を復元するには、指令 HIDEMESSAGE"1888" を使用します。
エンタープライズ サーバー リージョンが外部セキュリティを使用して保護されている場合に、Enterprise Server コンソール ログおよび Communications Server ログへの Web アクセスが制限されるようになりました。いずれかのログ ファイルを表示するには、有効なユーザー名およびパスワードを入力する必要があります。
ログへの Web アクセスは、Enterprise Server コンソール ログおよび Communications Server ログのリソースとともに、新しい Communications Server リソース クラスの下の標準 ACL 定義を使用して制御できます。これらのリソースが存在する場合、ユーザーはログの表示を許可される「読み取り」アクセス権を必要とします。リソースが存在しない場合、デフォルトの動作では、有効なユーザー名およびパスワードの入力時に「読み取り」アクセスが許可されます。
新しいリソース クラスおよびリソース定義のサンプルは、es_default_ldap_msuser.ldf (Windows) または es_default_ldap_unix.ldf (UNIX) ファイルにあります。このファイルは、製品ディレクトリの bin (Windows) または etc (UNIX) サブディレクトリにあります。
製品のバージョン 4.0 は、以前の Micro Focus 製品よりも新しいバージョンの Microsoft C ランタイム システムに依存しています。つまり、製品の以前のバージョンでビルドされた COBOL 実行可能ファイル (.exe) は、バージョン 4.0 のランタイム製品とは互換性がない可能性があります。バージョン 4.0 でアプリケーションの動作が変わる場合、メインの実行可能ファイルをバージョン 4.0 に再リンクすることを強くお勧めします。これにより、COBOL ランタイム システムが、発生する可能性のあるランタイム エラー条件を完全に処理できるようになります。
元のオブジェクト コードが使用可能で、バージョン 4.0 と再リンクされている限り、バージョン 4.0 と完全に互換性のある新しい実行可能ファイルは、アプリケーションを再コンパイルせずに作成できます。
実行可能ファイルが製品の最新のプログラミングおよびパフォーマンスの強化の恩恵を受けられるように、ソース コードを完全に再コンパイルすることをお勧めします。
このリリースでは [Configure Runtime Environment] ダイアログ ボックスが変更されたため、システムをアップグレードした後、サービスを実行する前にこのダイアログ ボックスで以前に設定した値をすべて再入力する必要があります。
このリリースでは、すべての CICS 関連の Java アーティファクトは、Visual COBOL インストール ディレクトリの javaee-ccl ディレクトリ下の新しいディレクトリ構造を使用して提供されています。javaee-ccl ディレクトリ構造は、javaee ディレクトリの構造を模倣しています。たとえば、mfccl.jar は bin サブディレクトリではなく javaee-ccl\common ディレクトリにあります。
tcutil ユーティリティから生成されたテスト カバレッジの結果に影響するスキーマの変更により、結果をサードパーティ アプリケーション (XSLT プロセッサなど) に入力して <copyFileCoverage> 要素に依存する場合に、代わりに <sourceFileCoverage> にフォーカスするように変換を変更する必要があります。tcutil がすべてのソース ファイル (コピーブックだけでなく) をグローバルにカバーするようになったため、要素はその内容をより適切に反映するように名前が変更されました。
リリース 3.0 のこれらの変更の最新リストについては、Micro Focus カスタマー ケア Web サイトの製品ドキュメント セクションで入手できる本製品のリリース ノートを参照してください。
各問題の後に続く番号は、サポート インシデント番号と、その後に続く、報告された問題インシデント (Reported Problem Incident; RPI) 番号 (かっこ内) です。
FASTINIT 指令のデフォルト設定が以下のとおり変更されました。MF 方言を設定する際に、FASTINIT がデフォルトになりました。この指令は、他の方言ではデフォルトで設定されません (つまり、NOFASTINIT)。
mscorlib 以外のアセンブリ内の型への参照は、明示的に参照する必要があります。これを実行するには、ILREF コンパイラ指令を使用できます。
以前は、特定の状況で、ILREF"System" 指令を必要とせずに System.dll アセンブリ内の型にアクセスすることをコンパイラが許可していました。
新しい OpenESQL OPTIMIZECURSORS SQL コンパイラ指令オプションは、ODBC (DBMAN=ODBC) に対してデフォルトで有効になっています。 これにより WITH HOLD 句および FOR UPDATE 句を使用する埋め込み SQL カーソルが、すべてのデータベースで同じデータ整合性を持つことが保証されます。
以前のリリースで提供された動作を使用するためにアプリケーションで OpenESQL プリプロセッサが必要な場合は、OPTIMIZECURSORS=NO を使用してコンパイルします。
詳細については、「予約語一覧表」を参照してください。
本セクションでは、動作または使用法の重要な変更について説明します。これらの変更は、既存のアプリケーションの動作や、ツールの使用方法に影響を与える可能性があります。
各問題の後に続く番号は、サポート インシデント番号と、その後に続く、報告された問題インシデント (Reported Problem Incident; RPI) 番号 (かっこ内) です。
この製品リリースでは、COMMON プログラムを含むネストされたプログラムに対して正しい ANS85 スコープ規則を適用し、ネスト階層の異なるレベルで同じ名前の複数のプログラムを使用できるようにします。このようにして、マネージ COBOL の動作は、ネイティブ COBOL プログラムの動作と互換性が確保されます。
2869185 (1105763)
2869848 (619107)
2852872 (1103699)
2816871 (1099564)
2854207 (1103659)
2838118 (1101539)
本セクションでは、動作または使用法の重要な変更について説明します。これらの変更は、既存のアプリケーションの動作や、ツールの使用方法に影響を与える可能性があります。
各問題の後に続く番号は、サポート インシデント番号と、その後に続く、報告された問題インシデント (Reported Problem Incident; RPI) 番号 (かっこ内) です。
2835290 (1101493)
2848855 (1102932)
2699374 (1094326)
監査マネージャーが実行されていない場合、イベントは共有メモリから削除されず、スロットは使用できなくなります。したがって、新しい TIMEOUT オプションを使用して、クライアントが TIMEOUT 期間に達するまで送信を再試行するようにします。その後、監査イベントの送信を停止します。監査マネージャーがリサイクルされると、イベントの送信が再開されます。
mfaudit.timeout = nn は、ミリ秒単位のタイムアウト値です。
個々の監査マネージャー クライアントに対して TIMEOUT を設定するには、「CBL_AUDIT_CONFIG_PROPERTY_SET」API を使用します。これは整数のプロパティ値を取り、この値はミリ秒単位のタイムアウト値とします。
両方の方法を使用して TIMEOUT を設定した場合、このプロパティがゼロに設定されていない限り、クライアント プロパティ TIMEOUT が優先されます。そのような場合、構成ファイルの TIMEOUT が使用されます。「TIMEOUT」プロパティで「CBL_AUDIT_CONFIG_PROPERTY_GET」API を使用すると、クライアント プロパティの TIMEOUT 値のみが返されます。構成ファイルで設定された値は返しません。
2838689 (1101685)
CHARSET"EBCDIC" が有効である場合に、文字列内の各文字が有効な DBCS 文字であると見なされると、IS DBCS 検査は真を返す。有効な文字は、最初のバイトが 0x41 から 0xFE の範囲にあり、かつ 2 番目のバイトが 0x41 から 0xFE の範囲にある文字か、EBCDIC スペース (0x4040) である文字である。CHARSET"ASCII" が有効である場合に、DBCS 検査は OS の呼び出しを使用して、文字列に有効な 2 バイト文字のみが含まれているかどうかを判別し、有効であれば真を返す。
CHARSET"EBCDIC" が有効である場合に、文字列内の各文字が有効な漢字であると見なされると、IS KANJI 検査は真を返す。有効な文字は、最初のバイトが 0x41 から 0x7F の範囲にあり、かつ 2 番目のバイトが 0x41 から 0xFE の範囲にある文字か、EBCDIC スペース (0x4040) である文字である。CHARSET"ASCII" が有効である場合に、IS KANJI 検査は OS の呼び出しを使用して、文字列に有効な漢字のみが含まれているかどうかを判別し、有効であれば真を返す。
CHARSET"EBCDIC" が有効である場合、IS JAPANESE 検査はサポートされず、翻訳時に「COBCH1806 この機能は選択した文字集合ではサポートされない」というメッセージが表示されて翻訳エラーになる。
CHARSET"ASCII" が有効である場合に、IS JAPANESE 検査は、文字列に 2 バイトの日本語文字または半角のカタカナ文字のみが含まれている場合は真を返し、有効であれば真を返す。NSYMBOL"NATIONAL" が有効である場合、これらの字類検査はサポートされず、翻訳時に「COBCH0303 作用対象が誤ったデータ形式である」というメッセージが表示されて翻訳エラーになる。
2812895 (1098401)
本セクションでは、動作または使用法の重要な変更について説明します。これらの変更は、既存のアプリケーションの動作や、ツールの使用方法に影響を与える可能性があります。
各問題の後に続く番号 (ある場合) は、サポート インシデント番号と、その後に続く、報告された問題インシデント (Reported Problem Incident; RPI) 番号 (かっこ内) です。
2807531 (1097783)
2682101 (1092325)
2664675 (1091082)
2786397 (1095265)
2796076 (1096384)
COBDATA はコンパイルには影響しません。コンパイラの出力は、COBDATA が設定されているかどうかに関係なく同じ場所です。
以前は、sign-fixup、host-num-move、または host-num-compare では sign(EBCDIC) を指定できませんでした。この組み合わせはネイティブ COBOL でサポートされるようになりましたが、マネージ COBOL コードでは無効のままです。これは、バージョン 2.2 U2 HotFix 10 以降に適用されます。2824577 (1100823)
動作の変更点として考えられる例を、以下に示します。
strict_file_locking=true の場合、Process-A で読み取りアクセスのみを許可してファイルが正常に開かれているため、Process-B でファイルを開くことはできません。
strict_file_locking=false の場合は、Process-B で正常にファイルが開かれます。
アプリケーションが予期しない OPEN 状態を検出した場合、またはファイルを開けない場合は、この新しいファイル ロック動作が原因である可能性があります。そのような状況の場合は、アプリケーションのファイル ロックおよびファイル共有の要件を見直し、デフォルト設定を使用するようソース コードをリファクタリングすることをお勧めします。元のファイルのロックおよび共有の動作は、strict_file_locking=false を設定することで復元できます。
(609469)
2792882 (1096196)
2696707 (1095994)
2799213 (1096684)
2792382 (1096011)
以前のバージョンの Visual COBOL を使用してビルドされた他の COBOL サブプログラムには、リビルドは必要ありません。
本セクションでは、動作または使用法の重要な変更について説明します。これらの変更は、既存のアプリケーションの動作や、ツールの使用方法に影響を与える可能性があります。
各問題の後に続く番号は、サポート インシデント番号と、その後に続く、報告された問題インシデント (Reported Problem Incident; RPI) 番号 (かっこ内) です。
2697615 (1094527)
2697571 (1094370)
この新しいアルゴリズムは、オプション機能「username substitution」も提供します。これは、Security Manager の構成テキスト領域の [Operation] セクションで「rule substitutions」を「yes」に設定することで有効にできます。これを有効にすると、リソース ルール名の文字列「${user}」が、リクエストを行うユーザーの名前に置き換えられます。たとえば、「USERS.${user}.**」という名前の DATASET ルールは、2 番目の修飾子として要求元ユーザーの名前を持つデータセットに適用されます。まれに、リソースへのアクセスに関する複雑であいまいなセキュリティ ルールを使用している場合は、新しいアルゴリズムの結果として、動作に変化が生じることがあります。古いアルゴリズムは引き続きサポートされており、Security Manager の構成の [Operation] セクションで「version 1 authentication」を「yes」に設定することで有効にできます。
2807531 (1097783)
本セクションでは、動作または使用法の重要な変更について説明します。これらの変更は、既存のアプリケーションの動作や、ツールの使用方法に影響を与える可能性があります。
各問題の後に続く番号は、サポート インシデント番号と、その後に続く、報告された問題インシデント (Reported Problem Incident; RPI) 番号 (かっこ内) です。
本セクションでは、動作または使用法の重要な変更について説明します。これらの変更は、既存のアプリケーションの動作や、ツールの使用方法に影響を与える可能性があります。
各問題の後に続く番号は、サポート インシデント番号と、その後に続く、報告された問題インシデント (Reported Problem Incident; RPI) 番号 (かっこ内) です。
2195519 (1062800)
2657471 (1090355)
2549904 (1082171)
2608496 (1088530)
2488419 (1077143)
2641890 (1088838)
2487164 (1081693)
2562118 (1083203)
BIS_LOG 変数は、BIS アプリケーション プールを開始またはリサイクルする際にのみ検査されます。BIS_LOG を設定または変更した後、変数を有効にするには IIS を再起動する必要があります。
本セクションでは、動作または使用法の重要な変更について説明します。これらの変更は、既存のアプリケーションの動作や、ツールの使用方法に影響を与える可能性があります。
各問題の後に続く番号は、サポート インシデント番号と、その後に続く、報告された問題インシデント (Reported Problem Incident; RPI) 番号 (かっこ内) です。
2552658 (1082755)
2606838 (1087239)
2606835 (1087238)
2593798 (1085945)
本セクションでは、動作または使用法の重要な変更について説明します。これらの変更は、既存のアプリケーションの動作や、ツールの使用方法に影響を与える可能性があります。
各問題の後に続く番号は、サポート インシデント番号と、その後に続く、報告された問題インシデント (Reported Problem Incident; RPI) 番号 (かっこ内) です。
(589096)
2579335 (1084817)
2553438 (1082469)
本セクションでは、動作または使用法の重要な変更について説明します。これらの変更は、既存のアプリケーションの動作や、ツールの使用方法に影響を与える可能性があります。
各問題の後に続く番号は、サポート インシデント番号と、その後に続く、報告された問題インシデント (Reported Problem Incident; RPI) 番号 (かっこ内) です。
2549058 (1082441)
2518330 (1079491)