DL/Iステータス・コード

本付録では、アプリケーションがDL/I関数を呼び出した後、返されるDL/Iステータス・コードについて説明します。

アプリケーションは、DL/Iステータス・コードを参照してユーザーが指示した処理を実行します。

  • AC

    説明

    GU、GHU、GN、GHN、GNP、GHNP、ISRT、DLET、REPLなど、DL/I関数の呼び出し時に渡したSSAのエラーです。

    原因

    • SSAが階層レベル順に指定されていません。

    • DL/IがSSAに記述したセグメント名がデータベースPCBで見つかりません。

    • データベースPCBにセグメント名は記述されていますが、アクセスした階層レベル順にセグメント名が入っていません。

    • 同じ階層レベルのSSAを2回記述しています。

    対処方法

    SSAに記述したセグメントの階層レベル順または名前を確認して修正します。

  • AD

    説明

    関数のパラメータが有効でない場合やサポートしない関数タイプです。

    原因

    • 関数のパラメータが有効ではありません。

    • 関数のパラメータ順が有効ではありません。

    • システム・サービスの呼び出し時にI/O PCBを使用していません。

    • データベースの呼び出し時にデータベースPCBを使用していません。

    対処方法

    記述した関数コードまたはパラメータ順が有効であるかを確認します。

  • AH

    説明

    1つ以上のSSAパラメータが必要な関数を呼び出しました。

    原因

    ISRT呼び出しのときにSSAパラメータを含んでいません。

    対処方法

    ISRT呼び出しのときにSSAパラメータを含んでいるかを確認します。

  • AI

    説明

    データセットを開いたときにエラーが発生しました。

    原因

    • 初期化ロードが実行されていないデータセットに対し、L、LS以外のDBPCBを使用した関数を呼び出しました。

    • すでに初期化ロードが実行されたデータセットに対し、L、LSのDBPCBを使用してISRT関数を呼び出しました。

    対処方法

    データセットに初期化ロードが実行されたかを確認します。

  • AJ

    説明

    SSAに記述した形式が有効ではありません。

    原因

    • SSAが有効でないコマンド・コードを含んでいます。

    • 条件文の関係演算子が有効ではありません。

    • 条件文に括弧文字が抜けているか、ペアになっていません。

    • DLET、REPL、ISRTで修飾されたSSAを使用しています。

    対処方法

    SSAの形式を正しく修正します。

  • AK

    説明

    SSAで有効でないフィールド名が見つかりました。

    原因

    • SSAに記述したフィールド名が正しくありません。

    • SSAに記述したフィールド名がDBDに定義されていません。

    対処方法

    SSAのフィールド名を正しく修正します。

  • AM

    説明

    呼び出した関数がPCBのPROCOPTに定義されているプロセシング・オプションと適合しません。

    原因

    • DLET、REPL、ISRTを呼び出す場合に参照するPCBに適合するプロセシング・オプションを記述していません。基本的にDLETはD、REPLはR、ISRTはIが設定されている必要があります。

    • データベース初期化用のロード・プログラムでISRTを呼び出す場合に参照するPCBのプロセシング・オプションをLと記述していません。

    対処方法

    要求した関数を修正するか、PCBの内容を修正します。

  • AO

    説明

    TSAMで物理的なI/Oエラーが発生しました。

    原因

    • TSAMで障害が発生しました。

    • TSAMのデータベース・ファイルが削除されたか、アクセスができません。

    対処方法

    TSAMの障害可否を確認し、処理します。

  • AP

    説明

    CHKPを呼び出すときに使用したパラメータ数が有効ではありません。

    原因

    CHKPを呼び出すときに4つ以上のパラメータを記述しました。

    対処方法

    CHKPの呼び出し文を修正します。

  • DA

    説明

    修正できないセグメントのフィールドを変更しようとしました。

    原因

    • DLETまたはREPL呼び出しでセグメントのキーを変更しようとしました。

    • PSBのREPLオプションがNOに記述されたフィールドを修正しようとしました。

    対処方法

    要求事項を修正します。

  • DJ

    説明

    現在hold状態でないセグメントでDLETまたはREPLを実行しました。

    原因

    • GHU、GHN、GHNP呼び出しで照会せず、DLETまたはREPLを実行しました。

    • すでに削除されたセグメント内容でDLETを呼び出しました。

    対処方法

    要求事項を確認して修正します。

  • DX

    説明

    要求したDLET呼び出しがセグメントの削除規則に違反しています。

    原因

    プログラムがセグメントの削除規則に違反するDLETを要求しました。

    対処方法

    DBAはセグメントの削除規則を確認します。

  • GA

    説明

    上位レベルのセグメントが照会されました。

    原因

    修飾されていないGNまたはGNPを呼び出した際、現在のセグメントより上位レベルのセグメントが照会されました。

    対処方法

    情報性のステータス・コードです。

  • GB

    説明

    順次照会中にデータベースを最後まで読み込みました。

    原因

    GNを呼び出した際、データベースの最後まで照会されました。

    対処方法

    アプリケーション・プログラムで決定します。

  • GD

    説明

    現在のポジションがない状態でISRTを呼び出しました。

    原因

    現在のポジションが削除されたか、存在しない状態でISRTを実行しました。

    対処方法

    アプリケーション・プログラムで決定します。

  • GE

    説明

    条件に一致するセグメント・インスタンスが見つかりません。

    原因

    • Get系を呼び出した際、記述した条件に一致するセグメント・インスタンスが見つかりませんでした。

    • ISRTを呼び出した際、挿入するセグメントの親セグメントが見つかりませんでした。

    対処方法

    アプリケーション・プログラムで決定します。

  • GG

    説明

    有効でないセグメント・ポインターを持つセグメントを照会しました。

    原因

    • セグメント・ポインターが指し示す位置のセグメント・プレフィックス領域から有効でない形式の値が見つかりました。

    • セグメントが存在していない位置を指し示すセグメント・ポインターが見つかりました。

    対処方法

    • データベースのデータが正常にロードされたのかを確認します。COBOLアプリケーション・プログラムを使用して正常にデータをロードするには、STOP RUNの代わりにGO BACKコマンドを使ってプログラムを終了します。

    • HDAM、HIDAMデータベースの場合、1つのCIあたり1つのレコードが入れるようにレコード長を指定したのかを確認します。

  • GK

    説明

    現在のセグメントとレベルは同じであるが、他のタイプのセグメントが照会されました。

    原因

    修飾されていないGNまたはGNPを呼び出した際、現在のセグメントとレベルは同じであるが、他のタイプのセグメントが照会されました。

    対処方法

    情報性のステータス・コードです。

  • GP

    説明

    設定された親セグメントがありません。

    原因

    • 親セグメントが設定されていない状態でプログラムがGNPを要求しました。

    • GNPの要求時に記述したセグメントのレベルが、設定されている親(parent)より高いです。

    対処方法

    GNPを呼び出す前に親セグメントを設定し、GNPのときに記述したセグメントのレベルを確認します。

  • II

    説明

    セグメントの挿入時にデータベースに重複するセグメントが存在します。

    原因

    • ISRTの呼び出し時にデータベースに存在する既存のセグメントを挿入しようとしました。

    • 同じ物理的順次フィールドと論理的順次フィールドを持つツイン・セグメントが存在します。

    対処方法

    重複するセグメントの値を排除した後に処理します。

  • IX

    説明

    要求したISRT呼び出しがセグメントの挿入規則に違反しています。

    原因

    • 論理子セグメントの挿入を試みた場合、それに対応する論理親セグメントまたは物理親セグメントが存在しません。

    • 連結セグメントの挿入を試みた場合、物理的パスで挿入を試みた際に、論理親セグメントまたは物理親セグメントが存在しません。

    • 論理的パスで挿入を試みた際に、I/O領域の論理親または物理親のキーに該当するセグメントが存在しません。

    対処方法

    ISRT呼び出し、あるいはプログラムを修正します。

  • LB

    説明

    セグメントのロード時にデータベースに重複するセグメントが存在します。

    原因

    • 同じ物理的順次フィールドを持つツイン・セグメントが存在します。

    • 物理的フォワード・ポインターを持っていないツイン・セグメントで同じタイプの2番目のセグメントを挿入しようとしました。

    対処方法

    ISRT呼び出し、あるいはロード・コマンドを修正します。

  • LC

    説明

    ロードされたセグメントのキーフィールドが階層的な順序から外れました。

    原因

    入力したデータが階層的な順序に反します。

    対処方法

    セグメントをチェックし、ロードする位置を決めます。

  • NI

    説明

    一意の二次引に重複するセグメントが存在します。

    原因

    一意の順次フィールドである二次索引が定義されているセグメントで挿入または更新している間に、同じキーを持つ索引セグメントが見つかりました。

    対処方法

    業務要件に応じて決定します。重複する二次索引で発生した場合は一意でない索引を記述し、overflow entry-sequenced datasetを提供します。

  • V1

    説明

    有効でないセグメント長が入力されました。

    原因

    • 可変長セグメントの場合、ISRT、REPLの呼び出し時にDBDのSEGMENT句BYTES項目に記述したセグメント長が最大値・最小値の範囲を超えて入力されました。

    • ISRT、REPLの呼び出し時に入力したセグメント・データ長がデータベース・データセットのレコード長を超えました。入力したセグメント・データ長は、固定長セグメントの場合、DBDの[SEGMENT]句のBYTES項目に記述した値に従います。一方、可変長セグメントの場合は、セグメント・データI/Oバッファーに記述したセグメント長に従います。また、アクセス・メソッド別のセグメント・プレフィックス長も考慮します。

    対処方法

    ISRT、REPL呼び出しを実行するアプリケーションを修正するか、DBDのSEGMENT句BYTES 項目の値を修正します。

  • ZZ

    説明

    HiDBの動作中に内部エラーが発生しました。

    原因

    HiDBのさまざまな異常動作により発生します。

    対処方法

    表示されるOpenFrameのエラーコードを確認して対処してください。

特定のステータス・コードについての詳しい情報が必要な場合は、IBMマニュアルの『IMS V7 Application Programming: Database Manager』の「Chapter 17. DL/I Status Codes」を参照してください。