システム変数 sysVar.errorCode は、以下のいずれかが発生した場合に状況コードを受け取ります。
sysVar.errorCode の値はこのトピックではなく該当するシステム関数についての説明を参照してください。
call、I/O、またはシステム関数呼び出しが成功すると、sysVar.errorCode が 0 に設定されます。
sysVar.errorCode の詳細な概要については、『例外処理』を参照してください。可能な sysVar.errorCode 値のリスト が EGL Java™ ランタイム・エラー・コード に示されます。
Java コードを生成する場合は、考えられる sysVar.errorCode 値のリストが『EGL Java ランタイム・エラー・コード』に示されています。
読み取り中にファイル・マーク条件が発生した場合、sysVar.errorCode は戻りコード「00000004」に設定されます。
オープンに失敗した場合、sysVar.errorCode は戻りコード「00000008」に設定されます。
読み取り、書き込み、またはクローズ中に障害が発生した場合、sysVar.errorCode は戻りコード「00000012」に設定されます。
ファイルのオープンまたはクローズ中に障害が発生した場合、sysVar.errorCode の先頭の 2 バイトには VSAM プログラム制御ブロック (ACB) からのエラー・コードが 16 進数で入り、残りの 6 文字はゼロです。
それ以外の場合、sysVar.errorCode の最初の 2 文字はゼロです。これらのゼロの後に、2 文字の COBOL VSAM 戻りコード (VSAM フィードバック・コード)、1 文字の COBOL VSAM 機能コード (VSAM コンポーネント・コード)、および 3 文字の COBOL VSAM フィードバック・コード (VSAM 理由コード) が続きます。
ビルド記述子オプション sysCodes を YES に設定し、 データベース以外のリソースに対して入出力操作を実行すると、 リソースのタイプ (例えば、VSAM ファイルなど) に固有の戻りコードが sysVar.errorCode に格納されます。このコードをインタープリットする方法については、リソースに関する該当資料を参照してください。ただし、ビルド記述子オプションを NO に設定した場合、ファイル関連の戻りコードはリソースの種類に依存しません。
次の表に、戻される可能性のある COBOL ファイル状況コードの一部を示します。ビルド記述子オプション sysCodes を NO に設定して COBOL 出力を生成した場合に sysVar.errorCodeに入る値も併せて示します。さらに、sysCodes の値による影響を受けない EGL 入出力エラー値も示します。
COBOL ファイル状況コード (sysCodes を YES に設定した場合に sysVar.errorCode に入る) | sysCodes を NO に設定した場合の sysVar.errorCode 値 | EGL 入出力エラー値 (この列が空白の場合は「適用されない」の意味) |
---|---|---|
00000000、00000005、00000007 | 00000000 | |
00000002 | 00000103 | duplicate、ioError |
00000004 (可変長レコード形式) | 00000000 | |
00000004 (その他) | 00000220 | format、hardIOError、ioError |
00000010、00000014、00000046 | 00000102 | endOfFile、ioError |
00000022 | 00000206 | ioError、unique |
00000023 (start) | 00000102 | endOfFile、ioError |
00000023 (その他) | 00000205 | noRecordFound、ioError |
00000024、00000034 (相対でないアクセス方式または 0 でない相対キー) | 0000025A | full、hardIOError、ioError |
00000035 | 00000251 | fileNotFound、hardIOError、ioError |
00000038 | 00000218 | fileNotAvailable、hardIOError、ioError |
00000039、00000095 | 00000220 | format、ioError |
0000009D (iSeries™ COBOL のみ) | 00000381 | deadlock、hardIIOError、ioError |
次の表は、ランタイム・システムがその他の COBOL ファイル状況コードを戻す場合の sysVar.errorCode の設定値を示しています。
要求のタイプ | sysCodes を NO に設定した場合の sysVar.errorCode 値 | EGL 入出力エラー値 |
---|---|---|
open | 00000500 | ioError、hardIOError |
close または unlock | 00000989 | ioError、hardIOError |
read または start | 00000987 | ioError、hardIOError |
write | 00000988 | ioError、hardIOError |