ファイル状況コード

サブフィールド位置 *STATUS に入るコードで 99 より大きいものは、例外/エラー条件と見なされます。 状況コードが 99 より大きい場合に は、73 から 74 桁目にエラー標識が指定されていれば、その標識がオンに設定され ます。'E' 拡張が指定されていれば、%ERROR 組み込み関数が 1 を戻すように 設定されます。そうでない場合は、ファイル例外/エラー処理サブルーチンが 制御を受け取ります。位置 *STATUS は各ファイル操作の後に更新されます。

例外/エラーに関する情報を入手するために、%STATUS 組み込み関数を使用 することができます。この関数は、プログラムまたはファイル状況に関して設定された最新の値を戻します。 ファイルが指定されている場合、%STATUS は、 指定されたファイルに関する INFDS *STATUS フィールドに入っている値を戻します。

ファイル情報データ構造のサブフィールド位置 *STATUS には、以下の表のコード が入れられます。

表 1. 通常のコード
コード 装置1 RC2 条件
00000     例外/エラーなし。
00002 W 適用されません。 機能キーを使用した表示の終了。
00011 W、D、SQ 11xx 読み取り時のファイルの終わり (入力)。
00012 W、D、SQ 適用されません。 CHAIN、SETLL、または SETGT 命令でのレコード不在条件。
00013 W 適用されません。 WRITE 命令でサブファイルがいっぱい。
注: 1「装置」は、条件が該当する装置のこと です。次の略語が使用されます。 P = PRINTER; D = DISK; W = WORKSTN; SP = SPECIAL; SQ = 順次。RC の欄のメジャー/マイナー戻りコードは、ワークステーション・ファイルにのみ適用されます。2 メジャー/マイナー戻りコードを 記述するために mmnn の形式が使用されています。mm がメジャー戻りコード で、nn がマイナー戻りコードです。
表 2. 例外/エラー・コード
コード 装置1 RC2 条件
01011 W、D、SQ 適用されません。 定義されていないレコード・タイプ (入力レコードがレコード識別標識と一致 しない)。
01021 W、D、SQ 適用されません。 すでに存在しているレコードを書き出そうとした (使用中のファイルに固有の キーがあり、キーが重複した場合、あるいは相対レコード番号を重複してサブフ ァイルに書き出そうとした場合)。
01022 D 適用されません。 ファイル・メンバーで参照制約エラーが検出された。
01023 D、SQ 適用されません。 ファイル操作が実行される前のトリガー・プログラムのエラー。
01024 D、SQ 適用されません。 ファイル操作が実行された後のトリガー・プログラムのエラー。
01031 W、D、SQ 適用されません。 突き合わせフィールドの順序の誤り。
01041 適用されません。 適用されません。 配列/テーブルのロード順序のエラー。
01042 適用されません。 適用されません。 配列/テーブルのロード順序のエラー。代替照合順序が使用されます。
01051 適用されません。 適用されません。 配列/テーブル・ファイルの項目が多すぎる。
01061 適用されません。 適用されません。 ファイル・パラメーターに関連付けられている変数のエラー処理
01071 W、D、SQ 適用されません。 数値順序エラー。
011214 W 適用されません。 印刷キーの DDS キーワードに標識がない。
011224 W 適用されません。 前ページ・キーの DDS キーワードに標識がない。
011234 W 適用されません。 次ページ・キーの DDS キーワードに標識がない。
011244 W 適用されません。 CLEAR キーの DDS キーワードに標識がない。
011254 W 適用されません。 HELP キーの DDS キーワードに標識がない。
011264 W 適用されません。 HOME キーの DDS キーワードに標識がない。
01201 W 34xx 入力でレコードの不一致が検出された。
01211 すべて 適用されません。 クローズされているファイルへの入出力操作。
01215 すべて 適用されません。 すでにオープン済みのファイルへ OPEN が出された。
012163 すべて はい 暗黙の OPEN/CLOSE 命令でのエラー。
012173 すべて はい 明示の OPEN/CLOSE 命令でのエラー。
01218 D、SQ 適用されません。 レコードがすでにロックされている。
01221 D、SQ 適用されません。 前に読み取りを行わないで更新操作を行おうとした。
01222 D、SQ 適用されません。 参照制約エラーのためにレコードを割り振ることができない。
01231 SP 適用されません。 SPECIAL ファイルでのエラー。
01235 P 適用されません。 PRTCTL のスペースまたはスキップ記入項目にエラー。
01241 D、SQ 適用されません。 レコード番号が見付からない (レコード・アドレス・ファイルに指定されたレコード番号が処理中のファイル にない)。
01251 W 80xx 81xx 永続的な入出力エラーが起こった。
01255 W 82xx 83xx セッションまたは装置エラーが起こった。 回復手順が使用できる。
01261 W 適用されません。 入手できる装置の最大数を超えようとした。
01271 W 適用されません。 使用できない装置を入手しようとした。
01281 W 適用されません。 入手されていない装置への操作。
01282 W 0309 制御付きオプションによるジョブの終了。
01284 W 適用されません。 単一装置ファイルの 2 番目の装置を入手できない。
01285 W 0800 すでに入手済みの装置を入手しようとした。
01286 W 適用されません。 共用ファイルを SAVDS または IND オプションによりオープンしようとした。
01287 W 適用されません。 応答標識が IND 標識と上書きしている。
01299 W、D、SQ はい その他の入出力エラーが検出された。
01331 W 0310 ワークステーション・ファイルからの READ で待ち時間を超過した。
注:
  1. "装置"とは、条件が適用される装置のことを意味します。次の略語が使用されます。 P = PRINTER; D = DISK; W = WORKSTN; SP = SPECIAL; SQ = 順次。RC の欄のメジャー/マイナー戻りコードは、ワークステーション・ ファイルにのみ適用されます。
  2. メジャー/マイナー戻りコードを記述するために mmnn の形式が使用されていま す。mm がメジャー戻りコードで、nn がマイナー戻りコードです。
  3. オープンまたはクローズ操作の時点で発生したエラーは、メジャー/マイナーの 戻りコード値に関係なく、1216 または 1217 の *STATUS 値になります。
  4. 特別な処理については、図 2 を参照してください。

次の表は、ワークステーション・ファイルだけを使用している プログラムで起こったエラーをマッピングする *STATUS 値に対するメジャー/マイナー戻りコードを示しています。 メジャー/マイナー戻りコードの詳細については、Information Center を参照してください。

メジャー マイナー *STATUS
00、02 すべて 00000
03 すべて (09、10 を除く) 00000
03 09 01282
03 10 01331
04 すべて 01299
08 すべて 012851
11 すべて 00011
34 すべて 01201
80、81 すべて 01251
82、83 すべて 01255
注:
  1. 戻りコード・フィールドは、1285、1261、または 1281 の *STATUS 値の場合に は、データ管理機能を呼び出す前にこれらの条件が検出されるので、更新 されません。 これらのエラーのモニターには、対応するメジャー/マイナー戻りコード値で はなく、*STATUS 値を検査しなければなりません。