DECOMPRESS 機能では、次のいずれかの方法でデータを圧縮解除します。
ADAULD UNLOAD ユーティリティ機能によってアンロードされた出力から
1 つの圧縮 Adabas ファイルから直接(INFILE パラメータでファイル番号が指定されている場合)
INFILE ファイルから直接データを圧縮解除する場合、DECOMPRESS では最初に ADAULD UNLOAD/MODE=SHORT 機能を実行します。 これにより、ADAULD と ADACMP DECOMPRESS 処理を別々に実行するよりも、時間を短縮できます。
このドキュメントでは、次のトピックについて説明します。
圧縮解除するファイルが暗号化されている場合、このパラメータでそのサイファ(暗号)コードを指定する必要があります。 暗号化についての詳細は『Adabas Security Manual』を参照してください。
ETID では、INFILE で指定されたマルチクライアントファイルのオーナー ID を指定します。 ADACMP DECOMPRESS では、ETID で指定されたオーナー ID に割り当てられているマルチクライアントファイル内のレコードのみを選択して圧縮解除します。 ETID 値は、レコードがマルチクライアントファイルにロードされたときに割り当てられていた値と同じである必要があります。
FORMAT では、FDT で指定されたフォーマット以外のフォーマットに圧縮解除できます。 このパラメータを使用して、既存のファイルの FDT、および特にピリオディック(PE)グループの構造を変更できます。
FORMAT パラメータの構文は、読み込みコマンドに使用するフォーマットバッファ構文と同じです。ただし、テキストは挿入できません(テキストは圧縮/圧縮解除できません)。詳細は、『Adabas コマンドリファレンス』を参照してください。
注意:
FORMAT パラメータでは、圧縮解除時にすべての関連データフィールドが処理されたかどうかはチェックされません。
例えば、次のように定義されたマルチプルバリュー(MU)フィールドがあるとします。
01,AA,8,A,MU
このフィールドには 5 つのオカレンスが含まれ、ADACMP DECOMPRESS FORMAT パラメータが指定されています。
AA1-4
ここで、5 番目のフィールド値についての指定がない場合、先頭の 4 つの AA フィールド値のみが圧縮解除されます。 これは、PE フィールドのオカレンスおよび長さの変更にも適用されます。
このオプションパラメータでは、ADACMP 圧縮解除ロジックで、セグメント化された ADACMP レコードヘッダー(ADAH および ADAC)を非圧縮出力の一部として生成するかどうかを指定します。 有効な値としては YES と NO があり、NO がデフォルトです。
HEADER=NO は、フォーマットが Adabas 8 より前の Adabas バージョンの ADACMP によって許可および生成されます。 HEADER=NO を指定した場合、ADACMP によって生成される非圧縮出力レコードには、処理対象ファイルのフィールドに関するデータのみが含まれます。 各データレコードは、シーケンシャル入力データセットの 1 つの物理レコードに収まる必要があります(32 KB 未満)。 データがこのサイズより大きい場合、エラーとなったレコードが DDFEHL エラーデータセットに書き込まれます。
HEADER=YES は、Adabas 8 を実行している場合だけ指定できます。 HEADER=YES を指定した場合、ADACMP によって生成される各非圧縮出力レコードは ADAH または ADAC ヘッダーで始まり、論理レコードと物理レコードが関連付けられます。 各論理レコードは、32 KB より大きくすることができます。 各物理レコードのヘッダーでは、論理レコード内で後続データの位置を定義します。 ADACMP でセグメント化されたレコードの詳細は、「セグメント化されたレコードに関する考慮事項」を参照してください。 ADAH および ADAC ヘッダーの DSECT は、分散 Adabas MVSSRCE データセットのメンバ ADAH および ADAC 内にあります。
INFILE パラメータを使用すると、ADAULD ユーティリティでファイルのアンロードを行わなくても、ファイルを圧縮解除できます。 INFILE パラメータを指定しない場合、入力はシーケンシャル(DD/EBAND)ファイルから読み込まれます。 INFILE パラメータを ETID パラメータとともに指定した場合、マルチクライアントファイル内のレコードを選択的に圧縮解除できます。 マルチクライアントファイルを圧縮解除する場合は、「マルチクライアントファイルの圧縮解除」セクションを参照してください。
各レコードの ISN 値が各非圧縮レコードとともに出力されます。 このパラメータを省略した場合、各レコードの ISN 値は出力されません。
ISN を HEADER=YES とともに指定した場合、ADAH ヘッダーの直後に ISN 値が論理レコードの一部として続きます。 ADAH ヘッダーの DSECT は、分散 Adabas MVSSRCE データセットのメンバ ADAH 内にあります。
LPB では、ADACMP DECOMPRESS INFILE 機能に対する内部プリフェッチバッファのサイズ(バイト単位)を指定します。 指定可能最大値は、32,760 バイトです。 デフォルト値は、ニュークリアスに指定された ADARUN の LU 値に応じて、Adabas によって算出されます。
LOBVALUES パラメータは、ラージオブジェクト(LB)フィールドを含むファイルに対してのみ指定する必要があります。
このオプションパラメータでは、(253 バイトを超える)長い LB フィールド値または(253 バイトまでの)短い LB フィールド値を ADACMP DECOMPRESS 出力データとして要求するかどうかを指定します。 このパラメータに有効な値としては "YES" と "NO" があり、"NO" がデフォルトです。
このパラメータに "NO" が指定されている場合は、非圧縮出力データに、253 バイトまでの LB フィールド、および LOB ファイルに格納されている LB フィールド値への参照を含めることができます。 この場合、ADACMP DECOMPRESS FORMAT パラメータで LB フィールドを指定することはできません。 ADACMP DECOMPRESS での処理時には、基本ファイルのレコードのみが入力として読み込まれます。基本ファイルに LOB ファイル内の LB フィールド値への参照が含まれている場合、それらの参照は読み込まれず、出力に単に複製されます。
このパラメータに "YES" が指定されている場合、非圧縮出力データに、レコードの LB フィールド値を含めることができます。 この場合、INFILE パラメータも指定して、圧縮解除するデータを含む LOB ファイルの基本ファイルのファイル番号を識別する必要があります。 処理中に ADACMP DECOMPRESS が基本ファイルからレコードを読み取り、圧縮解除すると、参照されているすべての LB フィールド値を LOB ファイルから読み取ります。
注意:
LOBVALUES=NO を指定した ADACMP DECOMPRESS 機能に続いて LOBVALUES=NO を指定した
ADACMP COMPRESS 機能を実行すると、LOB
ファイルグループ内の基本ファイルの
FDT を変更できます。
このオプションパラメータを使用すると、非圧縮出力データの物理レコードを 1 つ以上スパンしている論理レコードをアセンブルするために ADACMP で使用されるバッファのサイズ(バイト単位)を指定できます。 このバッファは HEADER=YES も指定した場合に限り、割り当てられます。 それ以外の場合、MAXLOGRECLEN の設定は無視されます。 MAXLOGRECLEN のデフォルト値は 1,048,576 バイト(1 MB)です。
MAXLOGRECLEN で指定された値に文字 "K" が付いた場合、この値は 1024 倍されます。 最小値は、32768 バイトです。
機能の実行中にエラーになると、ユーティリティは、エラーメッセージを出力してユーザーアベンド 34(ダンプあり)またはユーザーアベンド 35(ダンプなし)で終了します。
NOUSERABEND を指定すると、ユーティリティは、エラーメッセージを出力してもアベンドしません。 代りに、メッセージ utility TERMINATED DUE TO ERROR CONDITION(エラーのためユーティリティを終了します)を表示してコンディションコード 20 で終了します。
NUMREC では、処理する入力レコードの数を指定します。 このパラメータを省略すると、入力データセット内のすべての入力レコードが処理されます。
入力データセットに多数のレコードがある場合、ADACMP の初回実行時に NUMREC を使用することをお勧めします。 このパラメータを指定すると、フィールド定義エラーや無効な入力データが原因で多くのレコードが拒否される場合に、全レコードに対して不要な処理が行われることを回避できます。 また、NUMREC は、テスト用の小さなファイルの作成にも役立ちます。
パスワード保護された Adabas ファイルから直接ファイルを圧縮解除する場合、PASSWORD パラメータで適切なパスワードを指定する必要があります。
SORTSEQ は、ファイルの処理順序を決めます。 このパラメータを省略すると、レコードが物理順で処理されます。 SORTSEQ は、INFILE が指定されている場合にのみ指定できます。
ディスクリプタを指定すると、ファイルがディスクリプタ値の論理順で処理されます。 ハイパーディスクリプタ、フォネティックディスクリプタ、マルチプルバリューディスクリプタフィールド、またはピリオディックグループ内のディスクリプタは使用しないでください。
ディスクリプタ名が、空値省略(NU)オプションで定義されたフィールドを参照している場合、ディスクリプタ名の後に "NU" を指定する必要があります。 この場合、空値を含むディスクリプタのレコードは圧縮解除されません。 この場合に NU を指定しないと(デフォルト)、ADACMP で NU ディスクリプタが拒否されます。
注意:
ディスクリプタフィールドまたは後続のフィールドが初期化されていない(値を持たない)場合は、空値省略のディスクリプタフィールドでなくても、そのレコードはインバーテッドリストに含まれません。
したがって、そのレコードはユーティリティの実行時に除外されます。
ISN を指定すると、ファイルが ISN 昇順に処理されます。 また、Adabas チェックポイントまたはセキュリティファイルについては、SORTSEQ=ISN しか許可されません。
TRUNCATE パラメータでは、圧縮解除時における圧縮英数字データの文字の切り捨てを可能にします。 TRUNCATE を指定した場合、FDT 定義より長い文字を含む英数字フィールドが ADACMP DECOMPRESS 処理時に検出されると、余分な文字が切り捨てられます。 TRUNCATE を指定しない場合、余分な文字を含む英数字レコードは DDFEHL データセットに書き込まれます。 英数字以外のフィールドは切り捨ての対象とはなりません。
UACODE では、英数字フィールドのシーケンシャル出力のエンコードを定義します。 このパラメータを使用すると、圧縮されたシーケンシャル入力のヘッダーで引き渡された英数字フィールドのユーザーエンコードを変更できます。
UARC パラメータでは、非圧縮ユーザーデータのシーケンシャル出力のアーキテクチャを指定します。 このパラメータを使用すると、圧縮されたシーケンシャル入力のヘッダーで引き渡されたユーザーエンコードを変更できます。
"ユーザーデータアーキテクチャキー" は、次の値を合計した整数です。
バイト順 | b=0 | 上位バイト 1 番目 |
b=1 | 下位バイト 1 番目 | |
エンコードファミリ | e=0 | ASCII エンコードファミリ |
e=2 | EBCDIC エンコードファミリ(デフォルト) | |
浮動小数点フォーマット | f=0 | IBM370 浮動小数点フォーマット |
f=4 | VAX 浮動小数点フォーマット | |
f=8 | IEEE 浮動小数点フォーマット |
デフォルトは ARC = b+ e + f = 2 です。つまり、上位バイト 1 番目、EBCDIC エンコードファミリ、および、IBM370 浮動小数点フォーマット(b=0、e=2、f=0)です。
Intel386 PC のユーザーデータの場合は、例えば b=1、e=0、f=8、または ARC=9 のようになります。
INFILE パラメータで指定したファイルのアンロード処理時に有効にするユーザータイプを指定します。 次のいずれかの値を指定できます。
EXF | ファイルの他ユーザーには、アクセスおよび更新を許可しません。 |
EXU | ファイルの他ユーザーには、アクセスのみを許可します。 EXU がデフォルトです。 |
UWCODE では、ワイド文字フィールドのシーケンシャル出力のエンコードを定義します。 このパラメータを使用して、圧縮されたシーケンシャル入力のヘッダーで引き渡されたワイド文字フィールドのユーザーエンコードを変更できます。
ADACMP では、Adabas データを圧縮解除して、シーケンシャルユーザーファイルに出力します。 INFILE パラメータでマルチクライアントファイルを指定し正しい ETID 値を指定すれば、DECOMPRESS 機能は自動的に選択したレコードを圧縮解除します。
DECOMPRESS 機能は、オーナー ID(ある場合)をスキップします。 マルチクライアントファイルの DECOMPRESS 処理の出力には、オーナー ID も ETID 情報も含まれていません。
DECOMPRESS 機能で処理するマルチクライアントファイルを INFILE パラメータで指定する場合、ETID パラメータを使用して圧縮解除を特定ユーザーのレコードのみに制限することが可能です。 この場合は、特定ユーザーのレコードのみが ADACMP に読み込まれ、圧縮解除されます。 マルチクライアントファイルの圧縮解除時に ETID パラメータを指定しなければ、ファイル内のすべてのレコードが圧縮解除されます。
ファイル 20 内の USER1 が所有するレコードのみが圧縮解除され、シーケンシャル出力ファイルに出力されます。
ADACMP DECOMPRESS INFILE=20,ETID=USER1
DECOMPRESS 機能を実行します。 入力データセットには、ADAULD ユーティリティの前回実行時の出力を使用します。
ADACMP DECOMPRESS
Adabas ファイル 23 を圧縮解除します。 非圧縮出力に、各レコードの ISN 値を含めます。
ADACMP DECOMPRESS INFILE=23,ISN