errorCode

システム変数 SysVar.errorCode は、以下のいずれかのイベントの発生後に状況コードを受け取ります。

SysVar.errorCode は以下の方法で使用できます。

呼び出し、I/O、またはシステム関数呼び出しが成功すると、SysVar.errorCode が 0 に設定されます。

SysVar.errorCode には、以下のような特性があります。
プリミティブ型
CHAR
データ長
8
converse 後、値は常にリストアされますか
はい

SysVar.errorCode の概要については、『例外処理』を参照してください。 起こりうる SysVar.errorCode 値のリストは、『EGL Java™ ランタイム・エラー・コード』に示されています。

定義に関する考慮事項

ユーザーが Java コードを生成する場合に、起こりうる SysVar.errorCode 値のリストが『EGL Java ランタイム・エラー・コード』に示されています。

CICS for z/OS でのリモート呼び出し

CICS® for z/OS® 上の EGL 生成プログラムがリモート側でプログラムを呼び出した場合 (しかも、文が try ブロック内にある場合)、SysVar.errorCode は以下のいずれかの値を受け取ります。
00000000
正常な呼び出しと戻り
00000204
プログラム名が無効です
00000207
システム ID が無効です
00000208
リンクのサービスが休止しています
ffrrrrrr
その他の CICS エラー。ここで、ff は EIBFN バイト 0 の 16 進法表記で、rrrrrr は EIBRCODE バイト 0-2 の 16 進法表記です。

入出力エラーと COBOL コード

ユーザーが COBOL コードを生成する場合、SysVar.errorCode 値の意味は、その値の形式によって決まります。
  • SysVar.errorCode の書式が RSnnnnnn の場合、「IBM® Enterprise Developer Server Guide for z/OS」の戻りコードに関するセクションの nnnnnn を参照すると、詳細情報が得られます。
  • それ以外の場合は、以下の規則が適用されます。
    • CICS の場合、SysVar.errorCode の文字は CICS EXEC Interface Block から派生します。
      • SysVar.errorCode の文字 1 と文字 2 には、EIBFN の 先頭バイトを表す 16 進表記が格納されます。
      • 文字 3 から文字 8 には、EIBRCODE の 0 - 2 バイトを表す 16 進数値が格納されます。
      これらの規則は、リモート・ファイル・アクセスにも適用されます。さらに、入出力操作が CICS SYSIDERR (リモート・ファイルへのアクセスでの問題) で終了した場合、以下のいずれかの値が SysVar.errorCode の最初の 6 文字にコピーされます。
      06D004
      システム・エントリーでない名前です
      06D008
      リンクのサービスが休止しています
      06D00C
      CICS にとって不明な名前です
    • z/OS バッチの場合、ファイル入出力の規則は、以下のようにファイル・タイプに固有です。
      SEQ
      SysVar.errorCode は、最初の 2 文字に COBOL 状況キー値を含みます。残りの 6 文字はゼロです。
      SEQRS
      動的割り振りが失敗した場合、SysVar.errorCode の先頭の 3 バイトに値 S99 (SVC 99 の場合は動的割り振り) が格納されます。 4 バイト目は 16 進数の SVC 99 戻りコードであり、5 バイト目から 8 バイト目には 16 進数のエラー理由コードが格納されます。

      読み取り中にファイルの終わり条件が発生した場合、 SysVar.errorCode には戻りコード「00000004」が格納されます。

      オープンに失敗した場合、SysVar.errorCode には戻りコード「00000008」が格納されます。

      読み取り、書き込み、またはクローズ時に障害が発生した場合、 SysVar.errorCode には戻りコード「00000012」が格納されます。

      VSAM
      SysVar.errorCode には、最初の 2 文字に COBOL 状況キー値が入り、これに続けて 2 文字の COBOL VSAM 戻りコード (VSAM フィードバック・コード)、1 文字の COBOL VSAM 機能コード (VSAM コンポーネント・コード)、および 3 文字の COBOL VSAM フィードバック・コード (VSAM 理由コード) が入ります。
      VSAMRS
      動的割り振りが失敗した場合、SysVar.errorCode の先頭の 3 バイトに値 S99 (SVC 99 の場合は動的割り振り) が格納されます。 4 バイト目は 16 進数の SVC 99 戻りコードであり、5 バイト目から 8 バイト目には 16 進数のエラー理由コードが格納されます。

      ファイルのオープンまたはクローズ時に障害が発生した場合、 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 を 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

  if (SysVar.errorCode == "00000008")
	   exit program;
  end
ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.
(C) Copyright IBM Japan 2005.