sysVar.errorCode

システム変数 sysVar.errorCode は、以下のいずれかが発生した場合に状況コードを受け取ります。

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

call、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 の 1 番目のバイトを表 す 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.