ADADCK では、データベース内の指定ファイル(複数ファイルも可)のデータストレージおよびデータストレージスペーステーブル(DSST)をチェックします。
ADADCK では、使用されている各データストレージブロックを(ファイルコントロールブロックのデータストレージエクステントに従って)読み込み、次のチェックを実行します。
ブロック長が許容範囲内かどうか (4 ブロック長物理ブロックサイズ)
データストレージブロックの全レコードの長さ合計に 4 を加えた長さがブロック長と等しいかどうか
レコード長がファイルの最大圧縮レコード長を超えるレコードまたは長さが 0 のレコードがあるかどうか
1 つのブロック内に重複した ISN があるかどうか
スパンドレコードが使用されている場合は、ヘッダー内の ISN は有効かどうか 各ヘッダーには、チェーン内のプライマリレコードの ISN、チェーン内の前のスパンドレコードの ISN、およびチェーン内の次のスパンドレコードの ISN が含まれているかどうか
スパンドレコードが使用されている場合は、プライマリおよびセカンダリスパンドレコードの ID ビットが正しいかどうか ビットの 1 つのみがオンにされているかどうか
関連する DSST エレメントの値は正しいかどうか 値が正しくない場合は、DSST の REPAIR が必要です(「REPAIR パラメータ」参照)。
注意:
エラーが発生すると、ADADCK によりコンディションコード 4 または 8 が返されます。
スパンドレコードが使用されており、指定されたデータストレージ RABN のいずれかがチェーンの一部である場合は、スパンドレコード全体がチェックされます。 FROMRABN および TORABN が指定されており、ファイルにスパンドデータストレージレコードが含まれている場合は、FROMRABN パラメータがプライマリレコードの RABN をポイントするようにすることをお勧めします。 このようにしない場合は、警告メッセージが出力されることがあります。 この場合、ADADCK 実行結果のコンディションコードは 0 となります。指定された FROMRABN がプライマリレコードではなくセカンダリレコードをポイントしているためにチェーン全体をチェックできないことは、単に警告によって示されます。
また、セカンダリ ISN が、FROMRABN および TORABN パラメータ指定で指定されたデータ RABN 以外のデータ RABN に存在している場合もあります。 これにより、セカンダリスパンドレコードチェーンをチェックするために、追加のデータストレージ RABN を読み込むことが必要になる場合があります。 パフォーマンスを最適化するために、ADADCK によってセカンダリ ISN テーブルがオンザフライで作成されます。 見つからないセカンダリ ISN がある場合、不明なセカンダリ ISN の場所を特定するために、データストレージ全体の検索が試みられます。
1 つのスパンドデータストレージファイルに関してチェックされる ISN の最大数は MAXPISN の設定によって決定されますが、デフォルトは 1000 です。 ファイルに MAXPISN パラメータ設定を超過する数のプライマリ ISN が含まれている場合、処理は続行されますが、次の警告メッセージが表示されます。
*** Warning *** More than MAXPISN primary spanned ISNs. Only the first MAXPISN ISNs will be checked. Run ADADCK again specifying a different FROMRABN to check the remaining RABNs or specify a higher MAXPISN value. Any errors reported after this warning may be due to the table limitation.
この警告メッセージが表示された場合、この警告の後に報告されるあらゆるエラーまたは CC=8 コンディションは、1000 のサイズ制限によってユーティリティによる ISN の追跡ができないことによって発生している可能性があります。 ファイルが損傷し、ADADCK 処理に使用される内部テーブルが ISN のすべてを保持できないことがエラーの原因となっている場合があります。 ファイルが正常な状態であることを確認するには、ADAVAL ユーティリティを実行します。