このドキュメントでは、次のトピックについて説明します。
ADACMP で処理、編集、および圧縮されたデータレコードは、ファイル定義情報とともに可変長のブロックレコード形式でシーケンシャルデータセットに出力されます。 このデータセットは、ADALOD ユーティリティの入力として使用できます。 いくつかの ADACMP 実行の出力を合わせて、ADALOD の入力として使用することもできます。
出力データセットに 1 つもレコードが含まれていない場合(入力データセットに 1 つもレコードを指定しなかったか、またはすべてのレコードが拒否された場合)、その出力も ADALOD ユーティリティの入力として使用できます。 この場合、ファイルに割り当てられているアソシエータスペースの量が十分であることを確認する必要があります。これは、入力レコード値のサンプルなしでは、ADALOD ユーティリティで正しい見積もりを行うことができないためです(詳細は、ADALOD ユーティリティを参照)。
圧縮レコード内の 191 より多い MU および PE オカレンスを識別する方法については、「圧縮レコード内の 191 を超える MU および PE オカレンスの特定」を参照してください。
ADACMP の圧縮処理中に拒否されたレコードは、すべて DD/FEHL エラーデータセットに書き込まれます。 レコードは、可変長ブロックフォーマットで出力され、複数の物理レコードにセグメント化されることがあります。 各論理拒否レコードの前には、初期 ADAF 拒否レコードヘッダーがあります。 論理レコードおよび ADAF ヘッダーが DD/FEHL 物理レコード長に収まらない場合、ADAN 拒否レコードヘッダーは、論理拒否レコードを構成する残りの物理拒否レコードセグメントに先行します。
これら 2 つのヘッダーの機能は、次のとおりです。
ADAF ヘッダーは、エラーの状況と適切な情報を示します。
ADAN ヘッダーのほうが小さく、拒否レコードの継続および ADAH/ADAC ヘッダーのエラーレポートに使用されます。
ADAF および ADAN ヘッダーの DSECT は、分散 Adabas MVSSRCE データセットのメンバ ADAF および ADAN 内にあります。
従来、ADACMP エラーに生成される DD/FEHL エラーデータセットは、FEHL 物理レコード長を超える拒否レコードを切り捨てていました。 バージョン 8 では、拒否されたレコードは切り捨てられずにセグメント化されます。 この変更により、DD/FEHL LRECL 設定には、最低 500 バイトが必要となります。
HEADER=YES が指定された場合、セグメント化された非圧縮レコードが論理レコードへとアセンブルされるときにエラーが発生することがあります。 ADAH ヘッダーでエラーになった場合、ADAH レコードは書き込まれますが、後続の ADAC レコードは次の ADAH レコードが処理されるまで書き込まれません。 ADAC ヘッダーでエラーになった場合、先行する ADAH ヘッダーはペイロードデータなしで書き込まれます。 エラーになった ADAC レコードは完全に書き込まれます。 後続の ADAC レコードは、次の ADAH レコードが処理されるまで書き込まれません。
以下に示すレスポンスコードが返されることがあります。
X'E7'(231) | 入力レコードが非常に短い場合(COMPRESS) |
X'E8'(232) | 出力レコード長のエラー(COMPRESS) |
X'E9'(233) | 無効な ADAH スパンドレコードヘッダーが見つかった場合 以下に示すサブコードは詳細を表します。
スパンドレコードおよび ADAH ヘッダーの詳細は、「スパンドレコード」を参照してください。 ADAH ヘッダーの DSECT は、分散 Adabas MVSSRCE データセットのメンバ ADAH 内にあります。 |
X'EA'(234) | 無効な ADAC スパンドレコードヘッダーが見つかった場合 以下に示すサブコードは詳細を表します。
スパンドレコードおよび ADAC ヘッダーの詳細は、「スパンドレコード」を参照してください。 ADAC ヘッダーの DSECT は、分散 Adabas MVSSRCE データセットのメンバ ADAC 内にあります。 |
レコード内の最初の無効なフィールドのみが検出され、参照されます。 他のエラーがあっても、次に実行するまで検出されません。
次の表は、ADACMP の圧縮処理中に拒否された 4 つのレコードの FEHL 出力を示しています。 拒否レコード 1 および 3 には FEHL レコード(ADAF)が 1 つだけ含まれています。拒否レコード 2 は 2 つの FEHL レコード(ADAF および ADAN)にセグメント化されています。拒否レコード 4 は 3 つの FEHL レコード(1 つの ADAF レコードおよび 2 つの ADAN レコード)にセグメント化されています。
注意:
ADAF および ADAN ヘッダーの DSECT は、分散 Adabas MVSSRCE データセットのメンバ ADAF および
ADAN 内にあります。
拒否レコード | FEHL レコード | FEHL フィールド | 説明 | |
---|---|---|---|---|
フィールド | 値 | |||
1 | ADAF | ADAFEYE | ADAF | ADAF ヘッダーのアイキャッチャー |
ADAFLEN | 72 | ADAF ヘッダー長 | ||
ADAFTYPE | R | タイプ。 正しい値は次のとおりです。
H:ADAH ヘッダー |
||
ADAFIND | E | 継続インジケータ。 正しい値は次のとおりです。
C:後続の継続レコード |
||
予約済み | 0 | 予約済み | ||
ADAFSLEN | 22000 | セグメント長(ヘッダーに続くペイロードデータの長さ) | ||
ADAFTOTL | 22000 | 合計長。
注意: |
||
ADAFISN | 1 | レコードの ISN | ||
ADAFLNUM | 1 | 論理レコード番号 | ||
ADAFPNUM | 1 | 物理レコード番号 | ||
ADAFEOFF | 5000 | 論理レコードのエラーオフセット | ||
ADAFPEX | 0 | PE インデックス | ||
ADAFFN | ZA | フィールド名 | ||
ADAFRSP | 41 | レスポンスコード | ||
ADAFSUB | 2 | サブコード | ||
予約済み | 0 | 予約済み | ||
ADAFDATA | 'Record 1 -- Payload Data' | 拒否入力データ | ||
2 | ADAF | ADAFEYE | ADAF | ADAF ヘッダーのアイキャッチャー |
ADAFLEN | 72 | ADAF ヘッダー長 | ||
ADAFTYPE | R | タイプ。 正しい値は次のとおりです。
H:ADAH ヘッダー |
||
ADAFIND | C | 継続インジケータ。 正しい値は次のとおりです。
C:後続の継続レコード(ADAN) |
||
予約済み | 0 | 予約済み | ||
ADAFSLEN | 27962 | セグメント長(ヘッダーに続くペイロードデータの長さ) | ||
ADAFTOTL | 50000 | 合計長。
注意: |
||
ADAFISN | 2 | レコードの ISN | ||
ADAFLNUM | 2 | 論理レコード番号 | ||
ADAFPNUM | 3 | 物理レコード番号 | ||
ADAFEOFF | 35000 | 論理レコードのエラーオフセット | ||
ADAFPEX | 0 | PE インデックス | ||
ADAFFN | ZA | フィールド名 | ||
ADAFRSP | 41 | レスポンスコード | ||
ADAFSUB | 2 | サブコード | ||
予約済み | 0 | 予約済み | ||
ADAFDATA | 'Record 2 -- Payload data part 1' | 拒否入力データ | ||
ADAN | ADANEYE | ADAN | ADAN ヘッダーのアイキャッチャー | |
ADANLEN | 24 | ADAN ヘッダー長 | ||
ADANTYPE | R | タイプ。 正しい値は次のとおりです。
C:ADAC ヘッダー |
||
ADANIND | E | 継続インジケータ。 正しい値は次のとおりです。
C:後続の継続レコード(ADAN) |
||
予約済み | 0 | 予約済み | ||
ADANSLEN | 22038 | セグメント長(ヘッダーに続くペイロードデータの長さ) | ||
ADANOFF | 27962 | 論理レコードのエラーオフセット。 | ||
ADANDATA | 'Record 2 -- Payload data part 2' | 継続される拒否入力データ | ||
3 | ADAF | ADAFEYE | ADAF | ADAF ヘッダーのアイキャッチャー |
ADAFLEN | 72 | ADAF ヘッダー長 | ||
ADAFTYPE | P | タイプ。 正しい値は次のとおりです。
H:ADAH ヘッダー |
||
ADAFIND | E | 継続インジケータ。 正しい値は次のとおりです。
C:後続の継続レコード(ADAN) |
||
予約済み | 0 | 予約済み | ||
ADAFSLEN | 20000 | セグメント長(ヘッダーに続くペイロードデータの長さ) | ||
ADAFTOTL | 20000 | 合計長。
注意: |
||
ADAFISN | 3 | レコードの ISN | ||
ADAFLNUM | 3 | 論理レコード番号 | ||
ADAFPNUM | 4 | 物理レコード番号 | ||
ADAFEOFF | 0 | 論理レコードのエラーオフセット | ||
ADAFPEX | 0 | PE インデックス | ||
ADAFFN | フィールド名 | |||
ADAFRSP | 233 | レスポンスコード | ||
ADAFSUB | 1 | サブコード | ||
予約済み | 0 | 予約済み | ||
ADAFDATA | ADAH およびペイロードデータ | 拒否入力データ | ||
4 | ADAF | ADAFEYE | ADAF | ADAF ヘッダーのアイキャッチャー |
ADAFLEN | 72 | ADAF ヘッダー長 | ||
ADAFTYPE | H | タイプ。 正しい値は次のとおりです。
H:ADAH ヘッダー |
||
ADAFIND | C | 継続インジケータ。 正しい値は次のとおりです。
C:後続の継続レコード(ADAN) |
||
予約済み | 0 | 予約済み | ||
ADAFSLEN | 32 | セグメント長(ヘッダーに続くペイロードデータの長さ) | ||
ADAFTOTL | 10064 | 合計長。
注意: |
||
ADAFISN | 4 | レコードの ISN | ||
ADAFLNUM | 4 | 論理レコード番号 | ||
ADAFPNUM | 8 | 物理レコード番号 | ||
ADAFEOFF | 0 | 論理レコードのエラーオフセット | ||
ADAFPEX | 0 | PE インデックス | ||
ADAFFN | フィールド名 | |||
ADAFRSP | 234 | レスポンスコード | ||
ADAFSUB | 3 | サブコード | ||
予約済み | 0 | 予約済み | ||
ADAFDATA | ADAH ヘッダー | 拒否入力データ | ||
ADAN | ADANEYE | ADAN | ADAN ヘッダーのアイキャッチャー | |
ADANLEN | 24 | ADAN ヘッダー長 | ||
ADANTYPE | C | タイプ。 正しい値は次のとおりです。
C:ADAC ヘッダー |
||
ADANIND | C | 継続インジケータ。 正しい値は次のとおりです。
C:後続の継続レコード(ADAN) |
||
予約済み | 0 | 予約済み | ||
ADANSLEN | 32 | セグメント長(ヘッダーに続くペイロードデータの長さ) | ||
ADANOFF | 32 | 論理レコードのエラーオフセット。 | ||
ADANDATA | ADAC ヘッダー | 継続される拒否入力データ | ||
ADAN | ADANEYE | ADAN | ADAN ヘッダーのアイキャッチャー | |
ADANLEN | 24 | ADAN ヘッダー長 | ||
ADANTYPE | D | タイプ。 正しい値は次のとおりです。
C:ADAC ヘッダー |
||
ADANIND | E | 継続インジケータ。 正しい値は次のとおりです。
C:後続の継続レコード(ADAN) |
||
予約済み | 0 | 予約済み | ||
ADANSLEN | 10000 | セグメント長(ヘッダーに続くペイロードデータの長さ) | ||
ADANOFF | 64 | 論理レコードのエラーオフセット。 | ||
ADANDATA | ADAC およびペイロードデータ | 継続される拒否入力データ |
ADACMP では、圧縮レコードに必要なデータストレージのおよそのスペース量(ブロック単位およびシリンダ単位)を計算します。 この情報は、DEVICE パラメータで指定するさまざまなデバイスタイプに必要なスペースを、5 %~30 %の各データストレージパディングファクタについて示した表の形で出力されます。
PARAMETERS: ADACMP COMPRESS NUMREC=1000 ADACMP FNDEF='01,AA,8,B,DE' ADACMP FNDEF='01,BA,6,A,NU' ADACMP FNDEF='01,BB,8,P,NU' ADACMP FNDEF='01,AD,1,A,FI' ADACMP SUBDE='CA=BA(1,3)' COMPRESS PROCESSING STATISTICS: NUMBER OF RECORDS READ 1,000 NUMBER OF INCORRECT RECORDS 0 NUMBER OF COMPRESSED RECORDS 1,000 RAW DATA 24,000 BYTES COMPRESSED DATA 16,656 BYTES COMPRESSION RATE 31.9 % LARGEST COMPRESSED RECORD 20 BYTES DATASTORAGE SPACE REQUIREMENTS: I DEVICE I PADDING I BLOCKSIZE I NUMBER OF I I I FACTOR I BYTES I BLOCKS CYLS I I----------I----------I------------I------------------------I I 3380 I I 4,820 I I I I 5% I 4,578 I 4 1 I I I 10% I 4,337 I 4 1 I I I 15% I 4,096 I 5 1 I I I 20% I 3,856 I 5 1 I I I 25% I 3,615 I 5 1 I I I 30% I 3,373 I 5 1 I I I I I I I----------I----------I------------I------------------------I TEMP SPACE ESTIMATION: I DEVICE I BLOCKSIZE I NUMBER OF I I I BYTES I BLOCKS CYLS I I----------I------------I------------------------I I 3380 I 7,476 I 5 1 I I----------I------------I------------------------I THE LARGEST DESCRIPTOR IS AA, IT WILL OCCUPY 1 TEMP BLOCKS SORT SPACE ESTIMATION: I DEVICE I BLOCKSIZE I LWP I NR OF I I I (BYTES) I (BYTES) I BLOCKS CYLS I ------------------------------------------------------------- I 3380 I 7476 I 139264 (MINIMUM) I 2 1 I I I I 1048576 (DEFAULT) I 2 1 I I I I 139264 (OPTIMUM) I 2 1 I I--------I-----------I--------------------I-----------------I
圧縮率は、圧縮ルーチンに実際に入力されたデータ量に基づいて計算されます。 フォーマット要素 nX(フィールドに空白を入力するために使用)でスキップしたフィールドはカウントされません。
ADACMP COMPRESS の実行で SPAN を指定した場合、スパンドデータストレージレコードの統計情報も出力されます。
Spanned Record Statistics: -------------------------- Number of Non-Spanned records 2 Number of Spanned records 8 Min Number of Segments 2 Max Number of Segments 5 Avg Number of Segments 4 Max MU Count 0 Max PE Count 300
ラージオブジェクト(LB)フィールドが圧縮される場合、LB フィールド(レポートで "LOB" として表示される)の統計情報が出力されます。
Large Objects Statistics: -------------------------- Number of bytes for largest LOB 10,124,996 Total number of LOBs 5 Total number of outsourced LOBs 5 Number of LOB file records 10,085