GTM-MML4VXJ
Skip to main content

プログラム修正一覧 : Windows (.NET) NetCOBOL開発環境

V8.0.0

ここに記載している情報は、V8.0.0で修正されている旧版で発生した障害一覧です。

項番 発生V/L 修正V/L P番号 現象
1 V2.0L10~V7.0.0 V8.0.0 PH08595 以下の条件の場合、翻訳オプションOPTIMIZEを指定したとき、翻訳時にコンパイラが異常終了する場合があります。
  1. 翻訳オプションOPTIMIZE(*1)が有効である。かつ、
  2. 繰返し処理を記述している。かつ、
  3. 2.の繰返し処理に以下を記述している場合
    • 指標名
    • 部分参照
    • 添字付け項目
    • 乗算

*1:.NETの場合、デフォルトはNOOPTIMIZEです。

※本障害が発生した場合、必ず翻訳時にコンパイラが異常終了します。

コンパイラが異常終了しない場合、正しいオブジェクトを生成します

2 V6.0.0~V7.0.0 V8.0.0 PH09133 以下の条件の場合、Visual Studioの使用時、以下のメッセージが表示され、プロジェクトのオープンに失敗する場合があります。
プロジェクトをアップグレード中に以下のエラーが発生しました:バージョン文字列の部分が短すぎるか、または長すぎます
  1. V3.0またはV3.1のCOBOL開発環境で作成または保存したプロジェクトを開く場合。
3 V4.1.0~V7.0.0 V8.0.0 PH09137 以下の条件の場合、Visual StudioデバッガーでCOBOLプログラムのデバッグ時、変数に値を設定すると入力した値と異なる値が設定される場合があります。
  1. Visual Studioデバッガーの以下のいずれかで監視中の数字データ項目の値を変更する。かつ、
    • [自動変数]ウィンドウ
    • [ローカル]ウィンドウ
    • [ウォッチ]ウィンドウ
    • [クイックウォッチ]ウィンドウ
    • データチップ
  2. 入力したデータの桁数が10桁以上である。かつ、
  3. 入力したデータに小数点が含まれる場合。
4 V7.0.0 V8.0.0 PH09597 以下の条件の場合、CSV形式データを操作するSTRING文/UNSTRING文を記述したSQL CLRデータベースオブジェクトをデータベースへ配置するとき、以下のメッセージが出力され、配置に失敗します。
メッセージ 6211、レベル 16、状態 1、行 1
CREATE ASSEMBLY failed because type 'ClassLibrary1.HelloWorld' in 
safe  assembly 'ClassLibrary1' has a static field '__REIEntry_1'. 
Attributes of static fields in safe assemblies must be marked  readonly in 
Visual C#, ReadOnly in Visual Basic, or initonly in Visual C++ and 
intermediate language.
  1. NetCOBOL for .NETを使用して、SQL Serverの内部で実行されるSQL CLRデータベースオブジェクトを作成している場合。
  2. SQL CLRデータベースオブジェクトのメソッドに、以下のいずれかの文(*1)を記述している。
    • STRING文(書き方2)
    • UNSTRING文(書き方2)
    かつ、
  3. 以下のオプションがいずれも有効である(*2)。
    • コンパイラオプション /verifiable
    • 翻訳オプション RCS(SJIS-UCS2)
    • 翻訳オプション INITONLY
    • 翻訳オプション SQLSCOPE(METHOD)

*1:CSV形式データを操作する文です。

*2:コンパイラオプション /optionset:sqlclr を指定した場合も該当します。

5 V3.0L10~V7.0.0 V8.0.0 PH10339 以下の条件の場合、以下のいずれかの現象が発生する場合があります。
  • COBOLプログラムの実行時、2進項目のフィールドへ誤った値が転記される。または、
  • 編集項目のフィールドに転記を行うプログラムの翻訳時、コンパイラが以下のメッセージを出力して異常終了する。
      An internal error occurred. (Code: 1005, Parameter: -1073741819)
      STATISTICS: HIGHEST SEVERITY CODE=U
      The compilation process was stopped.
    
  1. MOVE文の受取り側に複数のデータ項目を記述している。かつ、
  2. 1の文の2番目以降の受取り側にフィールド参照を記述している。かつ、
  3. 2の参照するフィールドが以下のいずれかの項目である。
    • USAGE IS COMPUTATIONAL句を指定した数字項目(*1)
    • USAGE IS BINARY句を指定した数字項目(*2)
    • 数字編集項目
    • 英数字編集項目
    • 日本語編集項目

*1: 翻訳オプションASCOMP5(ALL)または、ASCOMP5(COMP)指定時は除く。

*2: 翻訳オプションASCOMP5(ALL)または、ASCOMP5(BINARY)指定時は除く。

6 V1.0L10~V7.0.0 V8.0.0 PH13334 以下の条件の場合、まれにcobolcコマンドが「内部エラーです。(コード:4012, パラメータ: 183)」のエラーメッセージを表示してエラーが発生することがあります。
(MSBuildによってcobolcを実行している場合は「error MSB6006: "cobolc.exe" はコード 3 を伴って終了しました。」のメッセージが表示されます。)

[環境]

マルチコアプロセッサまたは複数のプロセッサを搭載したコンピュータの場合。

[条件]

同時に複数のcobolcコマンドが実行される場合。(例えば、MSBuildの並列ビルド機能を利用した場合など)

7 V1.0L10~V7.0.0 V8.0.0 PH13959 以下の条件の場合、翻訳時にコンパイラが無限ループをして翻訳が完了しないことがあります(*1)。
  1. IF文の入れ子の階層(*2)が180以上(*3)ある。かつ、
  2. 1.の180番目以降のIF文にCOBOLの文を記述している場合。
または、
  1. そとPERFORM文と節と段落が合わせて274以上(*3)ある。かつ、
  2. 1.の274番目以降の節または段落にCOBOLの文を記述している場合。

*1:無限ループが発生しない場合、翻訳処理の結果は正しいです。

*2:IF文の入れ子の例。この例では入れ子の階層は2です。

      IF ~                   ---------+
        IF ~                 --+      |
          ~                    |      |
                    階層2   階層1
          ~                    |      |
        END-IF                --+      |
      END-IF                 ----------+

*3:翻訳時のメモリの状態に依存するため、条件に一致しても無限ループしないことがあります。

8 V7.0.0 V8.0.0 PH14299 以下の条件の場合、エディタの動作が遅くなる場合があります。具体的には以下の動作が遅くなります。
  • スクロールやタグジャンプ等によりエディタでの表示領域が変わる場合、または、
  • エディタ上で文字を入力する場合。

[環境]

以下のVisual Studioを利用している場合。

  • Visual Studio 2015
  • Visual Studio 2017

Visual Studioのロケールによって現象が発生する場合と発生しない場合があります。

[発生条件]

  1. プロジェクトが開かれた直後である、かつ、
  2. 約1万行以上のソースコードをエディタで開いた場合、または、
    データ部のデータ項目が約100個以上記述されている場合、または、
    リポジトリ段落の型指定子が約100個以上定義されている場合、または、
    メソッド定義が約100個以上定義されている場合。

なお、発生条件の数値は目安です。ハードウェアスペックやOSの状態、またはVisual Studioにインストールされている他のプラグイン等の機能により数値が前後する場合があります。

V7.0.0

ここに記載している情報は、V7.0.0で修正されている旧版で発生した障害一覧です。

項番 発生V/L 修正V/L P番号 現象
1 V1.0L10~V5.0.0 V7.0.0 PG78440 以下の条件の場合、正しい実行結果が得られないことがあります。
  1. 翻訳オプションBINARY(BYTE)またはBINARY(WORD,MLBOFF)が指定されている。かつ、
  2. 以下の組み込み関数が存在する。かつ、

    [A]

    • FUNCTION MAX
    • FUNCTION MIN
    • FUNCTION MEAN
    • FUNCTION MEDIAN
    • FUNCTION RANGE

    [B]

    • FUNCTION ANNUITY
    • FUNCTION NUMVAL
    • FUNCTION NUMVAL-C
    • FUNCTION RANDOM
  3. 2.の関数の引き数が、全て9桁以下の固定小数点数字である。かつ、
  4. 2.の関数が[A]の場合、引き数が4つ以上指定されている。
2 V1.0L10~V5.0.0 V7.0.0 PG86728 以下の条件の場合、COBOLプログラムの翻訳時に、COBOLコンパイラが以下の不当な翻訳時メッセージを 出力して、翻訳できなくなることがあります。
JMN5001I-S 11 メソッド'mmmmm'が多重定義です. メソッド名はクラス'ccccc'の中で一意でなければなりません.
  1. OVERRIDE指定のメソッド定義がある。かつ、
  2. 1.のメソッドと親クラスに定義された同名のメソッドのUSINGパラメタまたはRETURNINGパラメタが以下の場合
    1. メソッドのパラメタの一方が集団項目、もう一方は集団項目または英数字項目。かつ、
    2. パラメタのサイズが一致する。
3 V3.0L10~V5.0.0 V7.0.0 PG88107 以下の条件の場合、int型2進整数項目を使用したCOBOLプログラムの翻訳時に、コンパイラが 以下のメッセージを出力して異常終了します。
JMN0102I-U 翻訳処理が続行不可能となりました. 他の診断メッセージが表示されている場合は,それらを修正して,再度翻訳してみて下さい. (区名=JMN300,モジュール名=SC30MKTT,詳細コード=3209,行情報=nnn.)

以下のいずれかの文を記述している場合に発生します。

  • 小数部のみの数字項目をint型2進整数項目へ転記する文
  • 小数部のみの演算結果をint型2進整数項目へ受け取る算術文
4 V1.0L10~V5.0.0 V7.0.0 PG88615 以下の条件の場合、COBOLプログラムの翻訳時に、COBOLコンパイラが不当なJMN1477I-Iの メッセージを出力する場合があります。
  1. 特殊名段落(SPECIAL-NAMES)を宣言している。かつ、
  2. 特殊名段落に重大コードSのコーディング誤りがある場合。

補足)メモリの状態に依存するため、発生条件を満たしても現象が発生しない場合があります。

5 V1.0L10~V5.0.0 V7.0.0 PG89665 以下の条件の場合、COBOLプログラムの翻訳時に、以下の不当な翻訳時メッセージが出力され、 COBOLプログラムが翻訳できません。
JMN2206I-S KEY IS句のデータ名'xxxxx'は,アドレス可変項目であってはなりません.
  1. OCCURS句のKEY IS指定を記述している。かつ、
  2. 1.に指定したデータ名がレコードの中の可変位置にある場合。
6 V5.0.0 V7.0.0 PG94117 以下の条件の場合、入力候補一覧にプロパティ項目が表示できません。
  1. COBOLエディタを使用する場合。かつ
  2. 入力支援機能の入力候補一覧を表示する(∗1)場合。かつ
  3. プロパティを持つデータ項目を選択している場合。

(∗1) 名前を途中まで入力してから、Altキーを押しながら→キーを押すか、 Ctrlキーを押しながらSpaceキーを押します。

7 V1.0L10~V5.0.0 V7.0.0 PG97116 以下の条件の場合、MAX関数・MIN関数の実行結果が正しくないことがあります。
  1. 翻訳オプションBINARY(BYTE)を指定している。かつ、
  2. 数字を引数とするMAX関数またはMIN関数を記述している。かつ、
  3. 2.の関数の引数が3個以内である。かつ、
  4. 2.の引数に2進項目を指定している。かつ、
  5. 4.の2進項目の領域長が1,3,5,6,7バイトのいずれかである(∗1)。かつ、
  6. 2.の関数値が格納される一時的なデータ項目の桁数(∗2)が19以上30以下である。かつ、
  7. 2.の引数に定数を指定していない。かつ、
  8. 2.の引数に浮動小数点項目を指定していない。かつ、
  9. 2.の引数にALLを添字とする項目を指定していない。

∗1:以下の2進項目が該当します。

---------------------------------------------
桁数                 割り当てられる領域長
符号付き  符号なし
---------------------------------------------
 1 ~ 2   1 ~ 2     1
 5 ~ 6   5 ~ 7     3
10 ~ 11 10 ~ 12    5
12 ~ 14 13 ~ 14    6
15 ~ 16 15 ~ 16    7
---------------------------------------------

∗2:関数値が格納される一時的なデータ項目は以下の桁数となります。
整数部桁=全引数の整数部桁数のうち最大の値
小数部桁数=全引数の小数部桁数のうち最大の値

8 V1.0L10~V5.0.0 V7.0.0 PG98742 以下の[条件1]または[条件2]のいずれかの条件を満たす場合、COBOLプログラムの実行時に正しく 動作しないことがあります。または、COBOLプログラムの翻訳時にコンパイラが異常終了することがあります。

[条件1]:作業場所節、定数節のいずれかにデータ項目を宣言した場合

  1. TYPE句を指定した項目を従属するレベル番号01の集団項目を定義している。かつ、
  2. 1.の集団項目にREDEFINES句を指定している。かつ、
  3. 1.のデータ項目の長さが2.で再定義されるデータ項目の長さより短い場合。

または

[条件2]:ファイル節にデータ項目を宣言した場合

  1. TYPE句を含むレコード記述項を定義している。かつ、
  2. 同じファイル記述項に1.のレコード記述項とは別のレコード記述項を定義している。(∗) かつ、
  3. 1.のレコード記述項の長さが2.のレコード記述項の長さよりも短い場合。

∗ : ファイル節で同じファイル記述項にレコード記述項を2つ以上書くと、レコード記述項の領域が暗に再定義されます。


例1) 作業場所節、定数節のいずれかにデータ項目を宣言した場合

     01 D1 PIC X(20).     ∗> SIZE 20 BYTE   D2よりD1が長い。
     01 D2 REDEFINES D1.  ∗> SIZE  8 BYTE
       02 D21 TYPE T1.    ∗> SIZE  8 BYTE

     01 T1 TYPEDEF.
       02 TD1 PIC X(8).   ∗> SIZE  8 BYTE

例2) ファイル節にデータ項目を宣言した場合

  FD FILE1.
    01 R1 PIC X(20).     ∗> SIZE 20 BYTE    R2よりR1が長い
    01 R2 TYPE T2.       ∗> SIZE  8 BYTE
                         ∗>   暗に再定義され,R1とR2は同じ領域に割り付く
    01 T2 TYPEDEF.
      02 TD2 PIC X(8).   ∗> SIZE  8 BYTE
9 V4.1.0~V5.0.0 V7.0.0 PH00013 以下の条件の場合、Visual Studioの[デバッグ]タブの各プロパティに値を設定すると 「シーケンスに要素が含まれていません」というメッセージボックスが表示され、値を設定することが できないことがあります。
  1. [参照パス]タブで「参照パス(ユーザ)」を設定している場合、または、
    [登録集パス]タブで「登録集パス(ユーザ)」を設定している場合。かつ、
  2. [デバッグ]タブで、
    「スタートプロジェクト」を設定する場合、または、
    「外部プログラムの開始」を設定する場合、または、
    「ブラウザーを開始時に使用する URL」を設定する場合、または、
    「コマンドライン引数」を設定する場合、または、
    「作業ディレクトリ」を設定する場合、または、
    「リモートコンピューターを使用する」を設定する場合、または、
    「ネイティブ コード デバッグを有効にする」を設定する場合、または、
    「SQL Server デバッグを有効にする」を設定する場合、または、
    「Visual Studio ホスティング プロセスを有効にする」を設定する場合。
10 V1.0L10~V5.0.0 V7.0.0 PH02032 以下の条件の場合、COBOLプログラムの翻訳時に、正しい定数の継続に対して、下記の翻訳時メッセージが出力される場合があります。
JMN1022I-S 定数の終わりの引用符がありません.B領域の終わりまでを定数とみなします.
JMN1021I-S 定数の継続において,後の行は,標識領域にハイフンを書き,引用符で始めなければなりません. 定数が継続されているものとみなします.
  1. REPLACE文を記述している。かつ、
  2. 1.のREPLACE文による置き換えが行われる範囲(∗1)に以下の記述がある場合。
    1. COPY文を記述している。かつ、
    2. a.のCOPY文の前(∗2)がピリオド、右括弧、左括弧、コロンのいずれでもない。かつ、
    3. a.のCOPY文より後ろに複数の行に継続する定数(∗3)を記述している。かつ、
    4. a.のCOPY文とc)の定数との間に複数の行に継続する文字列(∗4)を記述していない。

∗1:次のREPLACE文が現れるまで、または、翻訳単位の終わりまで

∗2:空白、注釈行を除いた、直前の文字

∗3:文字定数、16進文字定数、日本語定数、ブール定数

∗4:日本語利用者語以外のCOBOLの語、PICTURE句の文字列


例)

    IDENTIFICATION DIVISION.
    PROGRAM-ID. SAMPLE1.
        REPLACE ==ABC== BY ==DEF==. ∗> REPLACE文の置き換え範囲開始
    ENVIRONMENT DIVISION.
    CONFIGURATION SECTION.
    SPECIAL-NAMES.
        SYMBOLIC CONSTANT
          COPY SYMCON.      ∗> COPY文の前がピリオド、括弧、コロンでない
        .
    DATA DIVISION.
    WORKING-STORAGE SECTION.
    01 MSG-01 PIC X(100) VALUE "ABCD…
   -                           "XYZ".       ∗> 複数の行に継続する定数
         :
11 V2.1L10~V5.0.0 V7.0.0 PH02168 以下の条件の場合、COBOLプログラムの翻訳時に不当な翻訳時メッセージ(∗)が出力され、COBOLプログラムが翻訳できません。
(∗)以下の翻訳時メッセージが出力されます。
JMN1479I-S 連結式が最大長を超えています.最大長までを連結します.
また、上記メッセージに加え、以下のメッセージも出力される場合があります。
JMN0124I-U ソースファイル内に不当な文字があります.(区名=JMNxxx,行情報=nn.)翻訳を中止します.」
  1. COBOLソースのコード系がUTF-8である。かつ、
  2. 日本語文字定数(∗1)同士の連結式が記述されている。かつ、
  3. 2.で連結された文字数が54~80文字の場合。

(∗1)記号定数や名前付き定数を含む

12 V1.0L10~V5.0.0 V7.0.0 PH02265 以下の[条件1]または[条件2]の場合、翻訳エラー(∗1)となるべきCOBOLプログラムが、エラーにならない(∗2)ことがあります。
(∗1)以下のいずれかのメッセージが出力されません。
JMN1775I-S AS句の直後には文字定数または日本語定数を指定しなければなりません.次の認識できる段落または部まで無効になります.
JMN1107I-S プログラム名として指定できない文字列が指定されました.またはプログラム名が指定されていません. プログラム名を生成し,次の段落または部まで無効になります.
JMN1292I-S プログラム名として指定できない文字列が指定されました.またはプログラム名が指定されていません.
JMN5526I-S INVOKE文のメソッド名の指定は,一意名,文字定数または日本語文字定数でなければなりません.INVOKE文を無効とします.
JMN5561I-S メソッドの行内呼出しに指定するメソッド名は文字定数または日本語文字定数でなければなりません.メソッドの行内呼出しを無効とします.

(∗2)翻訳エラーにならず、作成された目的プログラムは正しく動作します。

[条件1]

  1. 以下のいずれかに連結式を記述している。かつ、
    • プログラム名のAS指定
    • クラス名のAS指定
    • メソッド名のAS指定
    • プロパティ名のAS指定
    • プログラム名定数
    • INVOKE文または行内呼び出しのメソッド名の指定
  2. 1.に記述した連結式の先頭が文字定数である。かつ、
  3. 1.に記述した連結式に16進文字定数が含まれている。かつ、
  4. COBOLソースプログラムと実行時コード系が以下の組み合わせの場合。
    4-1-1) COBOLソースプログラムのコード系がSJISである。かつ、
    4-1-2) 実行時コード系がSJISである。
    または、
    4-2-1) COBOLソースプログラムのコード系がUTF-8である。かつ、
    4-2-2) 実行時コード系がUnicodeである。

[条件2]

  1. 以下のいずれかに連結式を記述している。かつ、
    • プログラム名のAS指定
    • クラス名のAS指定
    • メソッド名のAS指定
    • プロパティ名のAS指定
    • INVOKE文または行内呼び出しのメソッド名の指定
  2. 1.に記述した連結式の先頭が日本語文字定数である。かつ、
  3. 1.に記述した連結式に日本語16進文字定数が含まれている。かつ、
  4. COBOLソースプログラムと実行時コード系が以下の組み合わせの場合。
    4-1-1) COBOLソースプログラムのコード系がSJISである。かつ、
    4-1-2) 実行時コード系がSJISである。

【補足】

以下に指定できる定数は、文字定数または日本語文字定数でなければなりません。

  • プログラム名のAS指定
  • クラス名のAS指定
  • メソッド名のAS指定
  • プロパティ名のAS指定
  • プログラム名定数
  • INVOKE文または行内呼び出しのメソッド名の指定

したがって、発生条件に示す記述は構文規則に違反しており、本来ならば翻訳エラーとなるべき場合です。

13 V4.1.0~V5.0.0 V7.0.0 PH04404 Visual StudioエディタでCOBOLソースコードを編集している場合、稀にVisual Studioが強制終了または フリーズすることがあります。
14 V2.0L10~V5.0.0 V7.0.0 PH05732 以下の条件の場合、COBOLプログラムの実行時に、整列または併合処理の出力ファイルにおいて、 出力レコードの本来のレコード長を超えた部分から最大レコード長までの部分にゴミデータが追加されます。
  1. 整列併合ファイルのレコードの形式が可変長レコード形式である。かつ、
  2. 整列併合の出力が行順編成の可変長レコード形式のファイルである。かつ、
  3. 1.、2.のファイルを使用して整列、または、併合を実行している。かつ、
  4. 3.の入力ファイルに2.の出力ファイルの最大レコード長より短いレコードが含まれる場合。
15 V1.0L10~V5.0.0 V7.0.0 PH05861 以下の条件の場合、COBOLプログラムの実行時に、部分参照した外部10進項目から数字編集項目または 浮動小数点項目への転記結果に、以下の誤りが発生します。
  • 送出し側を部分参照する範囲が1桁左にずれる。
  1. 送出し側が符号付き外部10進項目、受取り側が数字編集項目または浮動小数点項目のMOVE文を記述している(∗1)。かつ、
  2. 送出し側項目のSIGN句にTRAILING SEPARATE CHARACTER指定がある。かつ、
  3. 送出し側項目を部分参照している。かつ、
  4. 3.の部分参照の長さを定数で指定している場合。

∗1: 暗黙のMOVE文を含む。

16 V4.1.0~V5.0.0 V7.0.0 PH06439 以下の条件の場合、COBOLプログラムの翻訳時に、コンパイラが以下のメッセージを出力して 異常終了する場合があります。
JMN0102I-U 翻訳処理が続行不可能となりました.他の診断メッセージが表示されている場合は, それらを修正して,再度翻訳してみて下さい.(区名=JMNALO,モジュール名=SDBEMAC ,詳細コード=5481,行情報=0.)
  1. 翻訳オプションにOPTIMIZEを指定している(∗)。かつ、
  2. 広域最適化の共通式の除去の対象になる演算や変換を使用している。かつ、
  3. 2.の対象となる共通式が別の節または段落で使用されている場合。

∗:デフォルトはNOOPTIMIZEです。

17 V1.1L10~V5.0.0 V7.0.0 PH06474 以下の条件の場合、COBOLプログラムの翻訳時に、構文誤りがあるにもかかわらず、 コンパイラが以下のメッセージを出力せずに、翻訳が正常終了します。(∗)
JMN2851I-S ポインタデータ項目は,基底場所節,作業場所節,定数節または連絡節にのみ定義できます.

(∗)翻訳エラーにならず、作成された目的プログラム中のポインタデータ項目は、他の節に宣言した場合と 同じように動作します。

  1. ファイル節にファイル記述項または整列併合ファイル記述項を宣言している。かつ、
  2. 1.のデータ記述項にポインタデータ項目を宣言している場合。
18 V1.0L10~V5.0.0 V7.0.0 PH06489 以下の条件の場合、COBOLプログラムの翻訳時に、コンパイラが以下のメッセージを出力して 翻訳を中止する場合があります。
内部エラーです。(コード:1005, パラメータ: -nnnnnnnnnn)
最大重大度コードは U です。
翻訳を中止します。
  1. 項目長が8の倍数の内部ブール項目を記述している。かつ、
  2. 1.の項目にSYNCHRONIZED句を指定している。かつ、
  3. 1.の項目にVALUE句を指定している。かつ、
  4. 1.の項目が次のいずれかの条件を満たしている。かつ、

    4-1) 1.の項目のレベル番号が01または77である。または、
    4-2) 1.の項目の終端位置から1.の項目を含むレコードの終端位置までの長さ(∗)が以下の長さより短い。

    • 1.の項目にOCCURS句を指定していない場合:1バイト
    • 1.の項目にOCCURS句を指定している場合:1バイト×繰り返し回数の最大値
  5. 1.の項目を次のいずれかの節に記述している場合。
    • プログラム定義の定数節
    • クラスのオブジェクト定義の作業場所節
    • クラスのオブジェクト定義の定数節
    • クラスのメソッド定義の定数節
    • クラスのスタティック定義の作業場所節
    • クラスのスタティック定義の定数節

∗: 終端位置は、レコード先頭からのオフセット+項目長が指す位置のことを表します。

  1.の項目を含むレコード
 +-----------------------------+-----------+-----------+
 |                             | 1.の項目  |           |
 +-----------------------------+-----------+-----------+
                                           ↑          ↑
                               1.の項目の終端位置      1.の項目を含むレコードの終端位置
19 V2.0L10~V5.0.0 V7.0.0 PH06512 以下の条件の場合、COBOLプログラムの翻訳時に、コンパイラが異常終了することがあります(∗1)。

∗1:本障害は翻訳時のメモリの状態に依存します。そのため、発生条件に一致しても異常終了しないことがあります。 異常終了しない場合、正しい目的プログラムを出力します。

  1. 翻訳オプションOPTIMIZE(∗2)が有効である。かつ、
  2. 他のデータ項目と記憶領域が重なる(∗3)データ項目が128個以上存在する。かつ、
  3. 基底場所節にデータ項目を定義している。かつ、
  4. 3.のデータ項目がポインタ付けされている。かつ、
  5. 4.のポインタが指す記憶領域が他のデータ項目の記憶領域と重なっている場合。

∗2:デフォルトはNOOPTIMIZEです。

∗3:集団項目やREDEFINES句、RENAMES句などを使用した場合、異なるデータ項目と記憶領域が重なります。以下に記憶領域が重なる例を示します。


       01  A.
         02  B.
           03  C.
             04  D  PIC X(5).
             04  E  PIC 9(5).
           03  G    PIC X(5).
         02  H  REDEFINES B.
           03  I    PIC 9(6).
           03  J    PIC 9(6).
       66  K  RENAMES B.

例)データ項目Dは、データ項目A、B、C、H、I、Kと記憶領域が重なります。
   また、データ項目Dは、データ項目E、G、Jと記憶領域が重なりません。
20 V1.0L10~V5.0.0 V7.0.0 PH06513 以下の条件の場合、COBOLプログラムの翻訳時に、コンパイラが以下のメッセージを 出力して異常終了することがあります。
  xxx.il(nnn) : error -- Undeclared identifier xxxxxxxxxx
  内部エラーです。(コード:1006, パラメータ: 1)
  最大重大度コードは U です。
  翻訳を中止します。
  1. SAME RECORD AREA句で複数のファイルを指定している。かつ、
  2. 1.で指定したいずれかのファイルをファイル節の先頭で定義している。かつ、
  3. 作業場所節でCOBOL独自型(∗1)のデータを定義していない。かつ、
  4. 1.で指定したファイルのうち2.ではないファイルのデータ項目の手続き部で設定または参照している場合。

例)

   INPUT-OUTPUT SECTION.
   FILE-CONTROL.
       SELECT FILE-1 ASSIGN SYSIN1.
       SELECT FILE-2 ASSIGN SYSIN2.
       SELECT FILE-3 ASSIGN SYSIN3.
   I-O-CONTROL.
       SAME RECORD AREA AFILE BFILE. … SAME RECORD AREA句に複数の
                                        ファイルを指定[発生条件の1)]
   DATA DIVISION.
   FILE SECTION.
   FD FILE-1.                      … ファイル節の先頭で定義
   01 FDATA1 PIC X.                   [発生条件の2)]     
   FD FILE-2.
   01 FDATA2 PIC X.                … 障害が発生するデータ項目(★)
   FD FILE-3.                         [発生条件の4)で設定されるデータ]
   01 FDATA3 PIC X.
   WORKING-STORAGE SECTION.        … COBOL独自型のデータを定義せず
   01 WS BINARY-LONG SIGNED.          [発生条件の3)]                     
   PROCEDURE DIVISION.
       MOVE "B" TO FDATA2.         … データ項目(★)に値を設定
                                      [発生条件の4)]  

∗1:.NETで規定されていないデータ型。詳細はCOBOL文法書「11.7.3.9 USAGE句」を参照。

21 V1.0L10~V5.0.0 V7.0.0 PH06787 以下の[条件1]または[条件2]の場合、COBOLプログラムの実行時に、仮パラメタに正しく値を 受渡しできない場合があります。

[条件1]

  1. 次の何れかの呼出しを使用している。かつ、
    • INVOKE文によるメソッド呼出し
    • メソッドの行内呼出し
    • プログラム原型定義呼出し
  2. 1.の呼出しで次の何れかのパラメタを指定している。かつ、
    • BY CONTENTを指定したパラメタ
    • 定数節のデータ項目
    • 文字定数
  3. 1.の呼出し先の仮パラメタにJUSTIFIED句を指定している。かつ、
  4. 2.のパラメタの長さと3.の仮パラメタの長さが異なる場合。

[条件2]

  1. 次の何れかの呼出しを使用している。かつ、
    • INVOKE文によるメソッド呼出し
    • メソッドの行内呼出し
    • プログラム原型定義呼出し
  2. 1.の呼出しで次の何れかのパラメタを指定している。かつ、
    • BY CONTENTを指定したパラメタ
    • 定数節のデータ項目
    • 文字定数
  3. 1.の呼出し先の仮パラメタにBLANK WHEN ZERO句を指定している。かつ、
  4. 2.のパラメタから3.の仮パラメタへの転記の結果がゼロとなる場合。

補足)

  • 仮パラメタは手続き部の見出しのUSING指定またはRETURNING指定に指定されたデータ項目を指します。
  • BY CONTENT指定のパラメタ受渡しでは仮パラメタへの転記が行われます。
    詳細については、COBOL文法書の「11.8.1 一般規則の8」を参照ください。

条件1の例)

  呼出し元-----------------------------------------
    <省略>
    WORKING-STORAGE SECTION.
    01 VAR PIC X(3).
    01 OBJ OBJECT REFERENCE CCC.
    PROCEDURE DIVISION.
         MOVE "ABC" TO VAR.
         INVOKE CCC "NEW" RETURNING OBJ.
         INVOKE OBJ "MMM" USING BY CONTENT VAR.
  -------------------------------------------------

  呼出し先-----------------------------------------
    CLASS-ID. CCC INHERITS FJBASE.
    <省略>
    METHOD-ID. MMM.
    DATA DIVISION.
    WORKING-STORAGE SECTION.
    LINKAGE SECTION.
    01 VAR PIC X JUSTIFIED.
    PROCEDURE DIVISION USING VAR.
         DISPLAY "VAR=" VAR.
    END METHOD MMM.
  -------------------------------------------------

  実行結果-----------------------------------------
    VAR=A    ←  正しくは"C"
  -------------------------------------------------

条件2の例)

  呼出し元-----------------------------------------
    <省略>
    WORKING-STORAGE SECTION.
    01 OBJ OBJECT REFERENCE CCC.
    01 RET-VAL PIC 9.
    PROCEDURE DIVISION.
         INVOKE CCC "NEW" RETURNING OBJ.
         MOVE OBJ::"MMM" ("000") TO RET-VAL.
    END PROGRAM PPP.
  -------------------------------------------------

  呼出し先-----------------------------------------
    CLASS-ID. CCC INHERITS FJBASE.
    <省略>
    METHOD-ID. MMM.
    DATA DIVISION.
    WORKING-STORAGE SECTION.
    LINKAGE SECTION.
    01 VAR PIC 9(3) BLANK WHEN ZERO.
    01 RET-VAL PIC 9.
    PROCEDURE DIVISION USING VAR RETURNING RET-VAL.
         DISPLAY "VAR=" VAR.
    END METHOD MMM.
  -------------------------------------------------

  実行結果-----------------------------------------
    VAR=000  ←  正しくは"   "
  -------------------------------------------------
22 V1.0L10~V5.0.0 V7.0.0 PH07292 以下の条件の場合、COBOLプログラムの実行時に、例外System.Reflection.CustomAttributeFormatExceptionが発生して異常終了します。
例外発生時のメッセージは.NET Frameworkが出力します。例として次のようなメッセージが出力されます。

ハンドルされていない例外:
System.Reflection.CustomAttributeFormatException:指定されたカスタム属性のバイナリ形式は無効です。

  1. 特殊名段落(SPECIAL-NAMES)にCUSTOM-ATTRIBUTE句を記述している。かつ、
  2. 1.のCUSTOM-ATTRIBUTE句に、パラメタにSystem.Object型を持つコンストラクタを使用する カスタムアトリビュートを記述した場合。

V5.0.0

ここに記載している情報は、V5.0.0で修正されている旧版で発生した障害一覧です。

項番 発生V/L 修正V/L P番号 現象
1 V1.0L10~V4.2.0 V5.0.0 PG91250 以下の条件のとき、データの表示に3分以上の時間がかかるか、またはVisual Studioがハングアップすることがあります。
  1. デバッグ対象のプログラムの作業場所節に定義されているCOBOLデータの総サイズが巨大(数万バイト)である場合。かつ、
  2. デバッガの次の機能を利用して、COBOLデータ全体または一部を表示させる場合。
    • データチップによる表示
    • [ローカル]ウィンドウによる表示
    • [自動変数]ウィンドウによる表示
    • [ウォッチ]ウィンドウによる表示
    • [クイックウォッチ]ウィンドウによる表示
2 V1.0L10~V4.2.0 V5.0.0 PG91267 以下の条件のとき、ソリューションを開く際に3分以上の時間がかかります。
  1. COBOLプロジェクト数が100以上ある場合。
3 V1.0L10~V4.2.0 V5.0.0 PG91264 以下の条件のとき、エラーメッセージ「不適切な'仮原文区切り'があります。」がVisual Studioのエラー一覧に表示されます。
  1. REPLACING句が指定されたCOPY文の仮原文に終止符が含まれているソースコードファイルをVisual Studioのエディタで開いた場合。または、
  2. Visual Studioのエディタで編集中のソースコードファイルにおいて、REPLACING句が指定されたCOPY文の仮原文に終止符を記述した場合。
4 V4.1.0~V4.2.0 V5.0.0 PG91269 以下条件のとき、エディタのナビゲーションバーに表示される、ファイル内で定義したメソッドのリストが、メソッド名の昇順にソートされません。
  1. COBOLのソースファイルに複数のメソッドが定義されている場合。かつ
  2. メソッド名が昇順に並んでいない場合。
5 V4.1.0~V4.2.0 V5.0.0 PG91295 以下の条件のとき、ファイルがプロジェクトに追加されません。
  1. プロジェクトに既存の項目を追加する場合。かつ
  2. ネスト構造を持つ場合。かつ
  3. プロジェクトフォルダ外のファイルを指定した場合。
6 V2.1L10~V4.2.0 V5.0.0 PG92450 以下の条件の場合、翻訳オプションOPTIMIZEが有効なプログラムの実行時に、ゼロ抑制の数字編集転記において先行ゼロ列に不正な文字(ゼロ)が転記されることがあります。
  1. 翻訳オプションOPTIMIZE(注1)が有効である。かつ、
  2. 数字編集項目へ転記する文を記述している。かつ、
  3. 2.の文の位置から前方100行以内(注2)に、以下の記述がない。かつ、
    • 段落
    • 条件文
    • 手続き分岐文(注3)
  4. 2.の数字編集項目には、編集方法にゼロ抑制のみを指定している(PICTURE句 の文字列に'9','Z','*'を組み合わせて使用している)場合。
(注1)翻訳オプションのデフォルト値はNOOPTIMIZEです。
(注2)注記行、空白行はカウントしません。本障害はコンパイラの内部条件に 影響されるため、発生条件に一致しても正しく転記される場合があります。
(注3)次の実行文でない文に制御の明示的な移行を起こす文を指します。

V4.2.0

ここに記載している情報は、V4.2.0で修正されている旧版で発生した障害一覧です。

注)V4.2は、Enterprise Editionのみの提供となります。

項番 発生V/L 修正V/L P番号 現象
1 V1.0L10~V4.1.0 V4.2.0 PG79961 以下の条件の時、、デバッグ時にデータ項目の内容(名前、値、型)が表示されないことがあります。
  1. デバッガで中断中のプログラムのデータ部に条件名条件項目が宣言されている場合。かつ、
  2. 条件名条件項目のVALUE句に、「'」、「"」、「:」、「;」、「<」、「>」、「{」、「}」の いずれかの文字が含まれている場合。かつ、
  3. データチップで任意のデータ項目を表示させる場合。または、
    [ローカル]または[自動変数]を表示して、データ項目の一覧を表示させる場合。または、
    [ウォッチ]または[クイックウォッチ]に任意のデータ項目を追加して表示させる場合。
または、
  1. デバッガで中断中のプログラムの特殊名段落のSYMBOLIC CONSTANT句に記号定数が定義されている場合、または、
    データ部で名前付き定数項目を宣言している場合。かつ、
  2. 記号定数または名前付き定数項目に、「'」、「"」、「:」、「;」、「<」、「>」、「{」、「}」の いずれかの文字が含まれている場合。かつ、
  3. データチップで任意の記号定数または名前付き定数項目を表示させる場合。または、
    [自動変数]を表示して、任意の記号定数または名前付き定数項目を表示させる場合。または、
    [ウォッチ]または[クイックウォッチ]に任意の記号定数または名前付き定数項目を追加して表示させる場合。
2 V1.0L10~V4.1.0 V4.2.0 PG79975 以下の条件のとき、デバッガでオブジェクト宣言またはスタティック宣言の作業場所節に 記述されているすべてまたは一部のデータ項目およびプロパティの内容(名前、値、型)を表示 できないことがあります。
  1. オブジェクト宣言またはスタティック宣言の作業場所節において外部アセンブリのクラス型の オブジェクト参照項目を宣言している場合。または、
    オブジェクト宣言またはスタティック宣言において外部アセンブリのクラス型のプロパティを定義 している場合。かつ、
  2. デバッガで中断中の手続きで1.のオブジェクト参照項目が未使用の場合(または初期化されて いない場合)。かつ、
  3. データチップ、[ローカル]および[自動変数]で、未使用のオブジェクト参照項目を含む オブジェクトを表示して、そのオブジェクトが保持するデータ項目の一覧を表示させる場合。または、
    [ウォッチ]または[クイックウォッチ]に未使用のオブジェクト参照項目を含むオブジェクトを追加し、 そのオブジェクトが保持するデータ項目の一覧を表示させる場合。
3 V4.1.0 V4.2.0 PG80006 以下の条件のとき、IntelliSenseによるデータ名の候補一覧が表示されないことがあります。
  1. 作業場所節、連絡節、または、定数節にデータ名がFILLER、またはデータ名が無いデータ項目が存在する場合。かつ、
  2. エディタ上で、データ名の候補一覧を表示する場合。
4 V1.0L10~V4.1.0 V4.2.0 PG79991 以下の条件のとき、デバッガでOCCURS句が記述されているデータ項目の表示において、 5分以上の時間がかかることがあります。
  1. デバッグ中の手続きで巨大な要素数のOCCURS句が記述されているデータ項目を 使用している場合。かつ、
  2. データチップまたは、[自動変数]で1.の表要素およびその従属項目を表示させる場合。または、
    [ローカル]または[自動変数]を表示して、1.の表要素を含む集団項目のツリー表示を展開させる場合。または、
    [ウォッチ]または[クイックウォッチ]に1.の表要素およびその従属項目を追加して、表示させる場合。または、
    [ウォッチ]または[クイックウォッチ]に1.の表要素を含む集団項目を追加して、集団項目のツリー表示を展開させる場合。
5 V2.1L10~V4.1.0 V4.2.0 PG79292 以下の条件のとき、NetCOBOL for .NETのコンパイルを実行すると、翻訳時間が通常時の 数秒から数分と遅くなります。
  1. NetCOBOL for .NETのコンパイル(cobolc.exe)を行う場合。かつ、
  2. プログラムのデータ項目定義時にVALUE句を多用している場合。または、クラスの データ項目定義部に大規模データを定義している場合。
6 V4.1.0 V4.2.0 PG80096 以下の条件のとき、以下のメッセージが表示され、プロジェクトのビルドエラーが 発生する場合があります。
JMN10010I-U: 指定されたアセンブリファイル'DLLパス'は存在しないか、あるいは有効な アセンブリファイルではありません。
  1. ソリューションエクスプローラの[参照設定]に他のプロジェクトを追加している場合。かつ、
  2. ソリューションのアクティブ構成を"Debug"以外に設定している場合。または、
    ソリューションのアクティブプラットフォームを"Any CPU"以外に設定している場合、かつ、
  3. [ビルド]または[リビルド]コマンドを実行した場合。
7 V2.0L10~V4.1.0 V4.2.0 PG79150 以下の条件のとき、プログラムの翻訳時にCOBOLコンパイラがメッセージの出力なしに 異常終了することがあります。
  1. 翻訳オプションOPTIMIZEが有効(注1-1)である。かつ、
  2. 手続き部で、以下の一意名を使用している場合。(注1-2)
    1. 添字付けをしているデータ項目
    2. 部分参照をしているデータ項目
    3. 可変反復データ項目
    4. 可変反復データ項目と同じ集団項目に含まれるデータ項目

(注1-1)翻訳オプションのデフォルトはOPTIMIZEであるプラットフォームは Linux64-IPFとLinux64-EM64Tです。

(注1-2)翻訳時のメモリの状態に依存するため、条件に一致しても異常終了 しないことがあります。

[補足]
障害現象は翻訳時異常終了に限られ、翻訳が正常に終了した場合の生成オブジェクトには問題はありません。

8 V1.0L10~V4.1.0 V4.2.0 PG81806 以下の条件のとき、翻訳時にコンパイラが異常終了することがあります。
  1. 次のいずれかの文を記述している。かつ、
    • CALL文
    • CANCEL文
    • INVOKE文
    • 【書き方2】のSTRING文/UNSTRING文(注2-1)
  2. 1.の文が条件文またはTRY文の中に記述されており、その条件文または TRY文(注2-2) の階層が2以上である(注2-3)場合。

(注2-1)CSV-FORMATを指定できるシステムに限定されます。

(注2-2)TRY文は.NET固有機能です。

(注2-3)階層が2以上とは、例えば次のような場合を表します。

【補足】
現象発生の目安は、製品により異なります。

  • .NET V4.1の場合
    条件文、TRY文の階層の数と共に、同じ手続きに存在する節、段落、 PERFORM文、 GO TO文等々の存在が影響します。
    現象の再現性は、上記要素の数の比率にも左右されますが、目安としては、階層数+ 上記要素の総数が180を超える場合となります。
  • 上記以外の製品の場合
    条件文、TRY文の階層が、180を超えるか否かが目安となります。
    180を超えなければ、現象は発生しません。
9 V3.0L10~V4.1.0 V4.2.0 PG77383 以下の条件のとき、奇数けたの数字編集項目への転記において、左に1けたずれて転記 されることがあります。
  1. 翻訳オプションOPTIMIZEが有効である(注3-1)。かつ、
  2. 内部10進項目を数字編集項目へ設定する文を記述している。かつ、
  3. 2.の内部10進項目と2.の数字編集項目のけた数は、「整数部のけた数が同じ、 かつ、小数部がない」である。かつ、
  4. 2.の数字編集項目には、編集方法にゼロ抑制のみを指定している(PICTURE句の 文字列に'9','Z','*'を組み合わせて使用している(注3-2))。かつ、
  5. 2.の文の前に、データ項目(または中間結果)を2.の内部10進項目へ設定する文(注3-3) を記述している。かつ、
  6. 5.の文の設定元のデータ項目(または中間結果)の桁数と、設定先の内部10進項目 の桁数の関係が次のようになっている場合。
     ---------------------------------------
       設定元データ項目 設定先データ項目
       (または中間結果) 内部10進項目
     ---------------------------------------
                2              3
                4              5
                6              7
                8              9
               10             11
               12             13
               14             15
               16             17
     ---------------------------------------

(注3-1)翻訳オプションのデフォルト値は製品の動作OSにより異なります。

  • Solaris、Linux(x86)、Linux(IPF)の場合、デフォルトはOPTIMIZEです。
  • Windows(x86)、Windows(IPF)、.NETの場合、デフォルトはNOOPTIMIZEです。

(注3-2)PICTURE句の文字列に'9'のみを使用している場合は数字項目となるため除きます。

(注3-3)MOVE文だけでなく、COMPUTE文など暗黙に転記が発生する場合も該当します。

10 V3.0L10~V4.1.0 V4.2.0 PG81851 以下の条件のとき、COBOLアプリケーションの実行でJMP0310I-I/U 'NON-FILE'の実行時 メッセージが出力され、OPEN文の実行が失敗する場合があります。
  1. 翻訳オプションにRCS(UTF8-UCS2)を指定している。かつ、
  2. COBOLファイルのレコード順ファイルを使用している。かつ、
  3. 2.のファイルに対し、ファイルの連結(CONCAT)を指定している。かつ、
  4. 2.のファイル名にASCII範囲外の文字が含まれている。かつ、
  5. 2.のファイルに対し、OPEN文を実行した場合。
11 V2.0L10~V4.1.0 V4.2.0 PG82410 以下の環境、発生条件のとき、COBOLアプリケーションの実行で次に示す実行時メッセージ が出力され、SORT文の実行が失敗する場合があります。
JMP0601I-I/U SORTまたはMERGE文でエラーが発生しました.CODE=000000d0.
[環境]
  1. PowerSORTをインストールしていない場合。
[発生条件]
  1. 環境変数BSORT_TMPDIRまたはTEMPに113バイト(注4-1)を超える フォルダ名を指定している。かつ、
  2. SORT文(注4-2)を実行した場合。

(注4-1)環境変数の指定値が\マークで終わる場合は、これを除いた長さとなります。

(注4-2)入力となるファイルまたはレコードのサイズにより、現象が発生しない場合があります。

V4.1.0

ここに記載している情報は、V4.1.0で修正されている旧版で発生した障害一覧です。

項番 発生V/L 修正V/L P番号 現象
1 V1.0L10~V4.0.0 V4.1.0 PG73470 以下の条件の時、翻訳時に誤った指摘メッセージが出力されます。(注1)
  1. 翻訳オプションFLAGSW(STDM)またはFLAGSW(STDI)を指定している。かつ、
  2. CALL文にUSING指定を記述している。かつ、
  3. USINGに指定したパラメタが5個以下の一意名である。かつ、
  4. 3.の一意名に添字または部分参照を1個以上指定している。かつ、
  5. 4.の添字または部分参照に一意名を指定している。かつ、
  6. 3.と5.の一意名の個数の合計が6個以上である。

(注1) JMN9333I-W (STD)CALL文中のUSING句に指定した作用対象の個数は5個以下でなければなりません。処理を続行します。

2 V1.0L10~V4.0.0 V4.1.0 PG68785 以下の条件の時、翻訳時メッセージの埋め込み文字が文字化けします。
  1. 実行時のコード系がUnicodeである(注2)。かつ、
  2. 翻訳時メッセージが出力されるプログラムを翻訳する。かつ、
  3. エラーの原因となった語が日本語16進文字定数である場合。

(注2) 翻訳オプションRCS(SJIS-UCS2)またはRCS(UTF8-UCS2)指定時が該当します。

3 V1.0L10~V4.0.0 V4.1.0 PG67603 以下の条件の時、翻訳時に不当な翻訳エラーが出力されます (注3-1)(注3-2)
  1. 実行時のコード系がUnicodeである(注3-3)。かつ、
  2. 行順ファイルである。かつ、
  3. ファイルのレコードが2階層以上の集団項目である(注3-4)。 または、
  4. WRITE文のFROMに指定された一意名が2階層以上の集団項目である (注3-4)。かつ、
  5. 4. 3.の集団項目が日本語項目または日本語編集項目のみで構成されている場合。

(注3-1) JMN5159I-S 日本語データの実行時コード系がUnicodeの場合,行順ファイルの レコードは日本語項目とその他の項目を同時に含むことはできません。

(注3-2) FROM指定付きのWRITE文を記述した場合,以下の翻訳エラーが出力されます。
「JMN3514I-S 翻訳オプションRCS(UTF8-UCS2)またはRCS(SJIS-UCS2)指定の場合,行順ファイルのWRITE文には,日本語項目とその他の項目を含む集団項目@1@は指定できません.」

(注3-3) 翻訳オプションRCS(SJIS-UCS2)またはRCS(UTF8-UCS2)指定時が該当します。

(注3-4) 2階層の集団項目の例を示します。

  01 A.
    02 A1.
      03 A11 PIC N.
      03 A12 PIC N.

以下のような1階層の集団項目は発生条件の対象外です。

  01 A.
    02 A1 PIC N.
    02 A2 PIC N.
4 V1.0L10~V4.0.0 V4.1.0 PG66674 以下の条件の時、翻訳時にプログラム名段落がない旨を通知するメッセージ (JMN1073I-S/JMN1104I-S)が出力されます。
  1. 31バイト以上の日本語プログラム名またはプログラム名定数を指定した外部プログラムを定義している。かつ、
  2. 1.と30バイトまで同じ日本語プログラム名またはプログラム名定数を指定した内部プログラムを定義した場合。
5 V1.0L10~V4.0.0 V4.1.0 PG67763 以下の条件の時、翻訳処理が異常終了します。異常終了の具体的な現象は以下のとおりです。
「問題が発生したため~を終了します」のダイアログボックスが表示されます。
  1. ソースプログラムの手続き部において、DISPLAY文の直後にCLOSE文を記述している。かつ、
  2. 1.のDISPLAY文にUPONを指定し、NO ADVANCINGを指定しない。かつ、
  3. 1.のDISPLAY文の終端に、終止符を記述しない。かつ、
  4. 翻訳オプションNUMBERを指定している、または 1.のCLOSE文がCOPY登録集に よって取り込んだものである。かつ、
  5. 1.のCLOSE文に対する[COPY修飾値](注4-1)が、2バイトの16進数で表現したときに、特定の値となる(注4-2)

(注4-1) [COPY修飾値]については、NetCOBOL for .NET メッセージ説明書の「翻訳メッセージ」トピックを参照ください。

(注4-2) 後半1バイトがX"0D"である場合

13 → X"000D"

269 → X"010D"

525 → X"020D"

など

6 V3.0L10~V4.0.0 V4.1.0 PG69138 以下の条件の時、実行時に、COBOLプログラムが異常終了します。異常終了の具体的な現象は以下のとおりです。
NetCOBOLランタイム処理においてSystem.NullReferenceExceptionが発生し、「問題が発生したため~を終了します」のダイアログボックスが表示されます。
  1. USINGまたはGIVING指定を持つSORT文またはMERGE文が存在する。かつ、
  2. 1.のUSINGまたはGIVING指定に、RELATIVE KEY句を持つ順呼出しの相対ファイルを指定している。かつ、
  3. 2.の相対ファイルがEXTERNAL指定のファイルではない。かつ、
  4. 2.のRELATIVE KEY句のデータ項目が、連絡節定義のデータ項目ではない。かつ、
  5. 1.のSORTまたはMERGE文が書かれたプログラムは、そのSORTまたはMERGE文の実行以前に、2.の相対ファイルに対するOPEN文を実行しない。
7 V3.1L10~V4.0.0 V4.1.0 PG73286 以下の条件の時、翻訳時に異常終了する場合があります。異常終了の具体的な現象は以下のとおりです。
「問題が発生したため、F5FGCBL.exe を終了します。」のメッセージボックスが出力されます。
  1. 外部プログラム名を定数で指定したCALL文が存在する。かつ、
  2. 翻訳オプションDLOADを指定して翻訳している場合。
8 V1.0L10~V4.0.0 V4.1.0 PG73382 外部プログラムまたは内部プログラムのRETURNINGに値型のオブジェクト参照項目を指定した場合、それぞれ以下の現象が発生します。
  • 外部プログラムの場合
    アプリケーションプログラムの実行時に、アクセス違反(C0000005)が発生し、アプリケーションプログラムが終了します。
  • 内部プログラムの場合
    翻訳時に以下のメッセージが出力され翻訳エラーとなります。
    JMN3034I-S SET文でNULL(S)により'変数名'の内容は変更できません.正しい組合せを指定してください.
9 V1.0L10~V4.0.0 V4.1.0 PG73376 STOP RUN文を主プログラム以外の手続きで実行した場合、プログラムの戻り値として、STOP RUN文を実行した副プログラムのPROGRAM-STATUSではなく、主プログラムのPROGRAM-STATUSの値が返されます。その戻り値をバッチファイル、または、プログラムで判定している場合に、処理結果を正しく判定できない場合があります。
10 V1.0L10~V4.0.0 V4.1.0 PG73381 ファイル、整列併合、またはデータベースを使用したプログラムを、CANCEL文の実行で初期化した場合、そのプログラムが使用していた作業場所節のCOBOL独自データ型の領域が開放されません。このため、作業場所節に巨大なCOBOL独自データ型の領域を使用するプログラムの場合、領域が再利用できないため、領域不足になる 場合があります。
11 V2.0L10~V4.0.0 V4.1.0 PG73380 データ部に整列併合用ファイル記述項を32個以上指定したソースプログラムを翻訳した場合、以下のメッセージを出力してコンパイラが終了します。
JMN0016I-U 翻訳に必要な主記憶域量が不足しています.翻訳を中止します.
12 V1.0L10~V4.0.0 V4.1.0 PG73383 以下の条件の時、COBOL独自データ型のバイト配列内のレベル番号01のデータ 項目の割付位置が8バイト境界に合っていない場合があります。
  1. レベル番号01のCOBOL独自データ型のデータ項目の宣言が複数宣言されている。 かつ、
  2. 先行するデータ項目の項目長が8バイトの倍数になっていない場合。
13 V4.0.0 V4.1.0 PG73385 外部プログラムの終了部分だけに展開する必要があったコンパイラの情報を、 内部プログラムの終了部分にも展開していたため、モジュールサイズが大きくなります。
14 V4.0.0 V4.1.0 PG73384 コンパイラが生成した内部メソッドのアクセシビリティ属性がPublicと なっているため、開発時にインテリセンスでそのメソッドが表示されてしまう 場合があります。
15 V1.0L10~V4.0.0 V4.1.0 PG74245 以下の条件のとき、翻訳時に(Code: 1006, Parameter: 1)を表示して、 重大度コードUで異常終了します。
  1. 手続き部の規模が比較的大きい(目安として1万行以上(注5-1))プログラムで ある。かつ、
  2. オブジェクト指定子を使用している。
または、
  1. 手続き部の規模が比較的大きい(目安として1万行以上(注5-1)) プログラムである。かつ、
  2. フィールド参照を使用しており、かつそのフィールド参照の一意名-1が、 フィールド参照ではない場合(注5-2)

(注5-1) 1万行以上はあくまでも目安です。書き方によっては1万行以下で発生する 可能性もあります。ただし一行に複数の文を書くようなことをしていない、 標準的なプログラミング形式であれば、数万行以上なければ、現象発生の 可能性は極めて低いです。

(注5-2) フィールド参照をフィールド参照で修飾している場合は、障害条件から除外 されることを表します。以下は障害条件に含まれない場合の一例です。

 フィールド名-1 OF フィールド名-2 OF オブジェクト参照/クラス名 

以下は、障害条件に含まれる場合の一例です。

 フィールド名-1 OF オブジェクト参照
 フィールド名-1 OF プロパティ名-1 OF オブジェクト参照/クラス名
16 V2.0L10~V4.0.0 V4.1.0 PG75513 以下の条件のとき、翻訳時にコンパイラが異常終了します。
[コンパイラが異常終了する条件]
  1. 内部プログラムを使用している。かつ、
  2. 1.のプログラムの外部プログラムではCHARACTER TYPE DEPENDING ON を使用していない。かつ、
  3. 1.の内部プログラムでCHARACTER TYPE DEPENDING ONを使用している。
[翻訳時に重大度コードUが発生する条件]
  1. 内部プログラムを使用している。かつ、
  2. 1.のプログラムの外部プログラムではCHARACTER TYPE DEPENDING ON を使用している。かつ、
  3. 1.の内部プログラムでCHARACTER TYPE DEPENDING ONを使用している。
17 V3.1L10~V4.0.0 V4.1.0 PG75514 以下の条件のとき、実行時にMERGE文が正しく動作しません。
  1. 翻訳オプションOPTIMIZEを有効にして翻訳している。かつ、
  2. TRY-CATCH-FINALLYの構文を使用している。かつ、
  3. 2.のCATCHブロック、または、FINALLYブロックにMERGE文を記述している。
18 V2.0L10~V4.0.0 V4.1.0 PG75515 以下の条件のとき、翻訳時に重大度コードUで異常終了します。
  1. 連絡節に宣言したデータである。かつ、
  2. 1.のデータは、手続き部のUSINGに指定されないデータである。かつ、
  3. 1.のデータに、GLOBAL属性を指定した場合。
19 V2.0L10~V4.0.0 V4.1.0 PG75517 以下の条件のとき、実行時に例外が発生します。
  1. プログラム定義である。かつ、
  2. 1.のプログラムにEXTERNALデータを宣言している。かつ、
  3. 翻訳オプションSHREXTを有効にして翻訳している。かつ、
  4. 1.のプログラムを呼出して実行する。かつ、
  5. 1.のプログラムにINITIAL属性が付いている。または、1.のプログラムを CANCELして初期化状態にする。かつ、
  6. 1.のプログラムを再度呼び出し、2.のデータにアクセスする。
20 V3.0L10~V4.0.0 V4.1.0 PG76450 以下の条件のとき、実行時にTRY文の処理結果が異常となります。
具体的には、TRY文にFINALLY指定があるにも関わらず、FINALLYブロックの 手続きが実行されないという現象が発生します。
  1. うちPERFORM文を記述している。かつ、
  2. 1.のうちPERFORM文の無条件文-1として、TRY文を記述している。かつ、
  3. 2.のTRY文にFINALLY指定を記述している。かつ、
  4. 2.のTRY文の無条件文-1(TRYブロック)または無条件文-2(CATCHブロック)に、 1.のうちPERFORM文を終了させるEXIT PERFORM文を記述している場合。
または、
  1. TRY文を記述している。かつ、
  2. 1.のTRY文に、FINALLY指定を記述している。かつ、
  3. 1.のTRY文の無条件文-1(TRYブロック)または無条件文-2(CATCHブロック)に、 EXT SENTENCE句を指定したIF文またはSEARCH文を記述している場合。

[補足]
2番目の条件にあるNEXT SENTENCE句を指定したIF文またはSEARCH文は、言語 仕様上ではTRY文内に記述できない書き方です。
ただし、当コンパイラでは、この書き方の誤りについてWエラーメッセージを 出力しますが、書かれた通りに受け入れます。
その結果、この条件のときにも同じ現象が発生するため、発生条件として記述 しています。

21 V3.0L10~V4.0.0 V4.1.0 PG76476 以下の発生条件のとき、不要な翻訳時メッセージ(注6-1) が出力されます。
  1. メソッド定義に印刷ファイル(順ファイル)以外のファイルを定義している。かつ、
  2. TRY文を記述している。かつ、
  3. TRY、CATCHまたはFINALLYのいずれかのブロック内で以下の文を実行している。
    • 1.のファイルをOPENまたはCLOSEしている。または、
    • 1.のファイルのレコードをWRITEしている。

(注6-1) 以下の翻訳時メッセージが出力されます。

「JMN5769I-S メソッド定義で定義されたLINAGE句を持つファイルに対する入出力文は, TRY文のxxxブロックには指定できません.」

22 V1.0L10~V4.0.0 V4.1.0 PG76490 以下の条件のとき、SQL文の実行で以下の例外事象が発生します。エラーコード ならびにエラーメッセージは埋込みSQL宣言節に定義したSQLSTATE/SQLCODE/SQLMSGに 設定されます。

SQLSTATE = 9999B (注7-1)

SQLCODE = -999999800 (注7-1)

SQLMSG = 指定したコネクションは存在しません (注7-2)

(注7-1) 例外事象の内容を示すコードが格納するための領域です。

(注7-2) 例外事象の内容を示すメッセージを格納するための領域です。

  1. リモートデータベースアクセス機能を使用し、ODBC経由もしくは ADO.NET 経由でデータベースに接続している。かつ、
  2. クラス定義を使用し、インスタンスメソッド内にSQL文を記述している。かつ、
  3. クラスの継承を使用し、継承元、継承先にまたがってコネクションの接続を している。かつ、
  4. アプリケーション構成ファイルもしくはODBC情報ファイルにおいて、 @SQL_CONNECTOIN_SCOPEオプションにOBJECT_INSTANCEを指定している場合。
23 V3.0L10~V4.0.0 V4.1.0 PG76725 以下の条件のとき、実行時メッセージに埋め込まれるクラス名が".cctor"となります。
  1. スタティックコンストラクタ定義している。かつ、
  2. 1.のクラスの処理で実行時エラーが発生した場合。

V4.0.0

ここに記載している情報は、V4.0.0で修正されている旧版で発生した障害一覧です。

項番 発生V/L 修正V/L P番号 現象
1 V2.0L10~V3.1L10 V4.0.0 PG60390 以下の条件の時、実行時に例外(TypeLoadException)が発生する場合があ ります。
  1. 特殊名段落にCUSTOM-ATTRIBUTE句を宣言している。かつ、
  2. 1.の宣言内で、TYPE OF特殊レジスタの一意名をUSINGに指定している。 かつ、
  3. 2.のTYPE OF特殊レジスタにクラス名を指定している。かつ、
  4. 3.のクラス名で指定されたクラスが外部アセンブリに所属している場合。
2 V1.0L10~V3.1L10 V4.0.0 PG60290 以下の条件の時、翻訳時にアクセス違反が発生し、翻訳が中断する場合があります。
  1. オブジェクト参照項目を引数に持つプログラムを呼び出すCALL文を記述する。かつ、
  2. 1.の引数の型が、CLR型(.NET基本データ型)でない型である、かつ、
  3. 2.の型情報が含まれているアセンブリファイルを、以下のいずれかの方法で指定していない場合。
    • COBOLプロジェクトの場合:「参照設定」に追加する
    • cobolcコマンドラインの場合:/referenceコンパイラオプションに指定する
3 V3.0L10~V3.1L10 V4.0.0 PG64265 以下の条件の時、翻訳時にエラーが出力されず、実行時に例外(MethodMissingException)が発生する場合があります。
  1. クラスT1内でプロパティP1が定義されている、かつ、
  2. プロパティP1のアクセサメソッドのアクセシビリティがそれぞれ異なっている、かつ、
  3. プロパティP1よりも狭いアクセシビリティをもつ方のアクセサメソッドを呼び出す (注1)、かつ、
  4. 3.の呼び出しが、本来はアクセスできないアクセサメソッドの呼び出しである場合。
(注1) COBOLソースではオブジェクトプロパティを記述します。コンパイラは、オブジェクトプロパティの記述からアクセサメソッドの呼び出しを展開して処理します。
4 V2.0L10~V3.1L10 V4.0.0 PG64354 以下の条件の時、翻訳時に異常修了する場合があります。
  1. IF文またはEVALUATE文のWHEN条件として、ANDまたはORによる複数条件の連結が指定されており、その中にSystem.Boolean型オブジェクト参照と、ブール項目またはブール定数を比較する条件式が指定されている。かつ、
  2. その条件式に対応する文として、CONTINUE文のみが指定されている。 かつ、
  3. 翻訳オプションOPTIMIZEを指定して翻訳している場合。
5 V1.0L10~V3.1L10 V4.0.0 PG64051 以下の条件の時、翻訳時に異常終了する場合があります。
  1. メソッドの行内呼び出しが存在する。かつ、
  2. 行内呼び出しの引数にLENGTH OF特殊レジスタを指定している場合。
6 V3.0L10~V3.1L10 V4.0.0 PG64361 以下の条件の時、翻訳時に異常終了する場合があります。
  1. 数字項目または数字定数と、集団項目以外とを比較する条件式が存在する。かつ、
  2. 翻訳オプションDECIMAL(88)またはDECIMAL(MF)を指定して翻訳している場合。
7 V1.0L10~V3.1L10 V4.0.0 PG63990 以下の条件の時、実行時に、SEARCH ALL文で正しく表検索できない場合があります。
  1. SEARCH文(SEARCH ALL)が存在する。かつ
  2. SEARCH文のWHEN指定に複数の条件を記述している、または、WHEN指定のキー項目に指定されている添字が多次元である。かつ、
  3. 条件の左辺(キー項目)に次のいずれかのUSAGEの項目を記述している。かつ、
    • COMP-5 (翻訳オプションASCOMP5によりみなされたものも含む)
    • BINARY-SHORT
    • BINARY-LONG
    • BINARY-DOUBLE
  4. 条件の右辺(比較対象項目)に浮動小数点項目または浮動小数点定数を記述している場合。
8 V1.0L10~V3.1L10 V4.0.0 PG64363 以下の条件の時、翻訳時に異常終了する場合があります。
  1. 手続き部に埋め込みSQL文を記述している。かつ
  2. 翻訳オプションTRUNCを指定して翻訳している場合。
9 V2.0L10~V3.1L10 V4.0.0 PG62941 以下の条件の時、翻訳時に翻訳時メッセージ(JMN1010I-S)が出力されない場合があります。
  1. 入力ソースがUnicode(UTF-8)である。かつ、
  2. 日本語利用者語の語頭または語尾のどちらかに全角ハイフンがある。かつ、
  3. 全角ハイフンのコードが0xEFBC8Dである場合。
10 V1.1L10~V3.1L10 V4.0.0 PG64651 以下の条件の時、翻訳時にJMN0102I-Uのエラーが発生する場合があります。
  1. クラス定義のSTATIC段落またはOBJECT段落のファイル節にLINAGE指定のある ファイル記述項が定義されている。かつ
  2. 翻訳オプションのCHECK(ALL)、または、CHECK(NUMERIC)が有効な状態で翻訳された。
11 V3.0L10~V3.1L10 V4.0.0 PG64751 以下の条件の時、デバッガでデバッグする中にTRYブロック内で例外が発生していない場合でも、FINALLYブロックの直前のCATCHブロック内の最後の実行文に制御が移動したようにCATCHブロック内で停止することがあります。
  1. TRY~CATCH~FINARY~END-TRYの構文を使用している。かつ、
  2. そのプログラムをデバッガでデバッグする。かつ、
  3. 該当部分をステップ実行等で実行制御の移動を確認する、または、該当する文に中断点を設定している場合。
12 V1.0L10~V3.1L10 V4.0.0 PG64807 以下の条件の時、SET文で実行時に例外が発生する場合があります。
  1. メソッドの引数として値型(valuetype)をBY REFERENCEで受け取る。かつ
  2. その引数をSET文でオブジェクト型に設定する。
13 V1.0L10~V3.1L10 V4.0.0 PG64822 以下の条件の場合、翻訳時にコンパイラがループする場合があります。
  1. 翻訳オプションRCS(SJIS)またはRCS(SJIS-UCS2)が指定されている。かつ、
  2. INVOKE文のUSINGパラメタの数が30個以上ある。 かつ、
  3. 2.のINVOKE文に以下の組合せのUSINGパラメタがひとつ以上ある場合。
    a.   INVOKE文のUSINGパラメタが英数字項目
    b.   a.に対応する呼び出すメソッドのUSINGパラメタがString型 またはChar型
14 V1.0L10~V3.1L10 V4.0.0 PG64711 以下の条件の場合、実行時に正しい実行結果が得られない場合があります。
  1. 翻訳オプションBINARY(BYTE)またはBINARY(WORD,MLBOFF)が指定されている。かつ
  2. 翻訳オプションOPTIMIZEが指定されている。かつ、
  3. 以下、a、b のいずれかに該当するソース記述が存在する場合。
    a. 以下の条件を全て満足する算術文
    • 受取り側要素 (注2-1) に符号無し2進項目 (注2-2) が指定されている。
    • 受取り側要素 (注2-1) の符号無し2進項目の領域長が、2バイトである。
    • 受取り側要素 (注2-1) が、その算術文の算術式中で使用されている。
    • 受取り側要素 (注2-1) の小数部桁数が、その算術文の中間結果精度の小数部桁数より小さい。
    • 算術文がCOMPUTE文の場合、[NOT] ON SIZE ERROR句の指定がない。
    b. 以下の条件を全て満足するMOVE文(暗に発生するMOVE文も含む)。
    • 受取り側要素に符号無しの2進項目 (注2-2) が指定されている。
    • 受取り側要素の2進領域長が、2バイトである。
    • 受取り側要素が、送出し側要素の添字中に使用されている。
    • 受取り側要素の小数部桁数が、送出し側要素の小数部桁数より小さい。
    • 翻訳オプションCHECK(BIND)が指定されていない。
(注2-1) DIVIDE文のREMAINDER指定も含みます。
(注2-2) 製品により該当するデータ項目の範囲が異なります。
  • Solaris → 全ての2進項目
  • Solaris以外 → USAGE IS COMP-5のみ
15 V1.0L10~V3.1L10 V4.0.0 PG64787 以下の条件の場合、実行時に正しい実行結果が得られないことがあります。
  1. 翻訳オプションBINARY(BYTE)またはBINARY(WORD,MLBOFF)が指定されている。かつ
  2. 翻訳オプションTRUNCが指定されている。かつ、
  3. 送出し側要素が符号無しの2進項目、受取り側要素が符号の有無に関わらず、2進項目または内部10進のいずれかであるMOVE文(暗に発生するMOVE文も含む)が存在する。かつ
  4. 3. のMOVE文において、送出し側要素と受取り側要素の整数部桁数の大小関係が、「送出し側整数部桁数 > 受取り側整数部桁数」である。かつ
  5. 送出し側要素の符号無し2進項目の領域長が、2または4バイトである。かつ
  6. 送出し側要素の符号無し2進項目が、最左端ビットがONの値を保持している。
16 V1.0L10~V3.1L10 V4.0.0 PG64876 以下の条件の場合、実行時に正しい実行結果が得られないことがあります。
  1. 翻訳オプションBINARY(BYTE)またはBINARY(WORD,MLBOFF)が指定されている。かつ
  2. 以下の組み込み関数が存在する。かつ
    • FUNCTION MAX
    • FUNCTION MIN
    • FUNCTION MEAN
    • FUNCTION MEDIAN
    • FUNCTION MIDRANGE
    • FUNCTION VARIANCE
    • FUNCTION RANGE
    • FUNCTION SUM
  3. 2. の関数に指定されている引数の並びの中に、2バイトまたは4バイトの符号無しの2進項目が存在する。かつ
  4. 2. の関数に指定されている引数の並びの中に、10桁以上の固定小数点数字項目が存在しない。
17 V1.0L10~V3.1L10 V4.0.0 PG64890 以下の条件の場合、翻訳時に数字定数から2進項目への転記に対して不当にエラーメッセージが出力される、または、実行時に正しい実行結果が得られないことがあります。
  1. 翻訳オプションBINARY(BYTE)またはBINARY(WORD,MLBOFF)が指定されている。かつ
  2. 数字定数を2進項目に転記するMOVE文(暗に発生するMOVE文も含む)が存在する。かつ
  3. 2.の数字定数の数値が5桁である。かつ
  4. 2.の転記において「数字定数の小数部桁数 < 受取り側の2進項目の小数部桁数」である。
18 V1.0L10~V3.1L10 V4.0.0 PG65186 以下の条件の場合、翻訳時にメッセージ「内部エラーです。(コード:1006,パラメータ: 1)」を出力し、異常終了する場合があります。
  1. 翻訳オプションOPTIMIZEを指定している。かつ、
  2. プログラム定義である。かつ、
  3. データ部のファイル節で、LINAGE句指定のあるファイル記述項を宣言している。または、
  4. データ部の作業場所節で、VALUE句指定のあるデータ記述項を宣言している。