バージョン 8.1.3
 —  ユーティリティ  —

DECOMPRESS: Adabas ファイルの圧縮解除

DECOMPRESS 機能では、次のいずれかの方法でデータを圧縮解除します。

INFILE ファイルから直接データを圧縮解除する場合、DECOMPRESS では最初に ADAULD UNLOAD/MODE=SHORT 機能を実行します。 これにより、ADAULD と ADACMP DECOMPRESS 処理を別々に実行するよりも、時間を短縮できます。

graphics/util_adacmp_decompress.png

このドキュメントでは、次のトピックについて説明します。


オプションのパラメータとサブパラメータ

CODE:サイファコード

圧縮解除するファイルが暗号化されている場合、このパラメータでそのサイファ(暗号)コードを指定する必要があります。 暗号化についての詳細は『Adabas Security Manual』を参照してください。

ETID:マルチクライアントファイルオーナー ID

ETID では、INFILE で指定されたマルチクライアントファイルのオーナー ID を指定します。 ADACMP DECOMPRESS では、ETID で指定されたオーナー ID に割り当てられているマルチクライアントファイル内のレコードのみを選択して圧縮解除します。 ETID 値は、レコードがマルチクライアントファイルにロードされたときに割り当てられていた値と同じである必要があります。

FORMAT:出力レコードのフォーマット定義

FORMAT では、FDT で指定されたフォーマット以外のフォーマットに圧縮解除できます。 このパラメータを使用して、既存のファイルの FDT、および特にピリオディック(PE)グループの構造を変更できます。

FORMAT パラメータの構文は、読み込みコマンドに使用するフォーマットバッファ構文と同じです。ただし、テキストは挿入できません(テキストは圧縮/圧縮解除できません)。詳細は、『Adabas コマンドリファレンス』を参照してください。

注意:
FORMAT パラメータでは、圧縮解除時にすべての関連データフィールドが処理されたかどうかはチェックされません。

例えば、次のように定義されたマルチプルバリュー(MU)フィールドがあるとします。

01,AA,8,A,MU

このフィールドには 5 つのオカレンスが含まれ、ADACMP DECOMPRESS FORMAT パラメータが指定されています。

AA1-4

ここで、5 番目のフィールド値についての指定がない場合、先頭の 4 つの AA フィールド値のみが圧縮解除されます。 これは、PE フィールドのオカレンスおよび長さの変更にも適用されます。

HEADER

このオプションパラメータでは、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:圧縮解除するファイルの番号

INFILE パラメータを使用すると、ADAULD ユーティリティでファイルのアンロードを行わなくても、ファイルを圧縮解除できます。 INFILE パラメータを指定しない場合、入力はシーケンシャル(DD/EBAND)ファイルから読み込まれます。 INFILE パラメータを ETID パラメータとともに指定した場合、マルチクライアントファイル内のレコードを選択的に圧縮解除できます。 マルチクライアントファイルを圧縮解除する場合は、「マルチクライアントファイルの圧縮解除」セクションを参照してください。

ISN:非圧縮出力に ISN を含める

各レコードの ISN 値が各非圧縮レコードとともに出力されます。 このパラメータを省略した場合、各レコードの ISN 値は出力されません。

ISN を HEADER=YES とともに指定した場合、ADAH ヘッダーの直後に ISN 値が論理レコードの一部として続きます。 ADAH ヘッダーの DSECT は、分散 Adabas MVSSRCE データセットのメンバ ADAH 内にあります。

LPB:プリフェッチバッファサイズ

LPB では、ADACMP DECOMPRESS INFILE 機能に対する内部プリフェッチバッファのサイズ(バイト単位)を指定します。 指定可能最大値は、32,760 バイトです。 デフォルト値は、ニュークリアスに指定された ADARUN の LU 値に応じて、Adabas によって算出されます。

LOBVALUES:LB フィールドサイズインジケータ

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 を変更できます。

MAXLOGRECLEN:バッファサイズ

このオプションパラメータを使用すると、非圧縮出力データの物理レコードを 1 つ以上スパンしている論理レコードをアセンブルするために ADACMP で使用されるバッファのサイズ(バイト単位)を指定できます。 このバッファは HEADER=YES も指定した場合に限り、割り当てられます。 それ以外の場合、MAXLOGRECLEN の設定は無視されます。 MAXLOGRECLEN のデフォルト値は 1,048,576 バイト(1 MB)です。

MAXLOGRECLEN で指定された値に文字 "K" が付いた場合、この値は 1024 倍されます。 最小値は、32768 バイトです。

NOUSERABEND:アベンドなし終了

機能の実行中にエラーになると、ユーティリティは、エラーメッセージを出力してユーザーアベンド 34(ダンプあり)またはユーザーアベンド 35(ダンプなし)で終了します。

NOUSERABEND を指定すると、ユーティリティは、エラーメッセージを出力してもアベンドしません。 代りに、メッセージ utility TERMINATED DUE TO ERROR CONDITION(エラーのためユーティリティを終了します)を表示してコンディションコード 20 で終了します。

NUMREC:圧縮解除するレコード数

NUMREC では、処理する入力レコードの数を指定します。 このパラメータを省略すると、入力データセット内のすべての入力レコードが処理されます。

入力データセットに多数のレコードがある場合、ADACMP の初回実行時に NUMREC を使用することをお勧めします。 このパラメータを指定すると、フィールド定義エラーや無効な入力データが原因で多くのレコードが拒否される場合に、全レコードに対して不要な処理が行われることを回避できます。 また、NUMREC は、テスト用の小さなファイルの作成にも役立ちます。

PASSWORD:INFILE のパスワード

パスワード保護された Adabas ファイルから直接ファイルを圧縮解除する場合、PASSWORD パラメータで適切なパスワードを指定する必要があります。

SORTSEQ:INFILE ファイルの処理順序

SORTSEQ は、ファイルの処理順序を決めます。 このパラメータを省略すると、レコードが物理順で処理されます。 SORTSEQ は、INFILE が指定されている場合にのみ指定できます。

ディスクリプタを指定すると、ファイルがディスクリプタ値の論理順で処理されます。 ハイパーディスクリプタ、フォネティックディスクリプタ、マルチプルバリューディスクリプタフィールド、またはピリオディックグループ内のディスクリプタは使用しないでください

ディスクリプタ名が、空値省略(NU)オプションで定義されたフィールドを参照している場合、ディスクリプタ名の後に "NU" を指定する必要があります。 この場合、空値を含むディスクリプタのレコードは圧縮解除されません。 この場合に NU を指定しないと(デフォルト)、ADACMP で NU ディスクリプタが拒否されます。

注意:
ディスクリプタフィールドまたは後続のフィールドが初期化されていない(値を持たない)場合は、空値省略のディスクリプタフィールドでなくても、そのレコードはインバーテッドリストに含まれません。 したがって、そのレコードはユーティリティの実行時に除外されます。

ISN を指定すると、ファイルが ISN 昇順に処理されます。 また、Adabas チェックポイントまたはセキュリティファイルについては、SORTSEQ=ISN しか許可されません。

TRUNCATE:余分な英数文字の切り捨て

TRUNCATE パラメータでは、圧縮解除時における圧縮英数字データの文字の切り捨てを可能にします。 TRUNCATE を指定した場合、FDT 定義より長い文字を含む英数字フィールドが ADACMP DECOMPRESS 処理時に検出されると、余分な文字が切り捨てられます。 TRUNCATE を指定しない場合、余分な文字を含む英数字レコードは DDFEHL データセットに書き込まれます。 英数字以外のフィールドは切り捨ての対象とはなりません。

UACODE:英数字フィールド出力のエンコードプロトコル

UACODE では、英数字フィールドのシーケンシャル出力のエンコードを定義します。 このパラメータを使用すると、圧縮されたシーケンシャル入力のヘッダーで引き渡された英数字フィールドのユーザーエンコードを変更できます。

UARC:非圧縮ユーザーデータ出力のアーキテクチャ

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 のようになります。

UTYPE:ユーザータイプ

INFILE パラメータで指定したファイルのアンロード処理時に有効にするユーザータイプを指定します。 次のいずれかの値を指定できます。

EXF ファイルの他ユーザーには、アクセスおよび更新を許可しません。
EXU ファイルの他ユーザーには、アクセスのみを許可します。 EXU がデフォルトです。
UWCODE:ワイド文字フィールド出力のエンコードプロトコル

UWCODE では、ワイド文字フィールドのシーケンシャル出力のエンコードを定義します。 このパラメータを使用して、圧縮されたシーケンシャル入力のヘッダーで引き渡されたワイド文字フィールドのユーザーエンコードを変更できます。

Top of page

マルチクライアントファイルの圧縮解除

ADACMP では、Adabas データを圧縮解除して、シーケンシャルユーザーファイルに出力します。 INFILE パラメータでマルチクライアントファイルを指定し正しい ETID 値を指定すれば、DECOMPRESS 機能は自動的に選択したレコードを圧縮解除します。

DECOMPRESS 機能は、オーナー ID(ある場合)をスキップします。 マルチクライアントファイルの DECOMPRESS 処理の出力には、オーナー ID も ETID 情報も含まれていません。

DECOMPRESS 機能で処理するマルチクライアントファイルを INFILE パラメータで指定する場合、ETID パラメータを使用して圧縮解除を特定ユーザーのレコードのみに制限することが可能です。 この場合は、特定ユーザーのレコードのみが ADACMP に読み込まれ、圧縮解除されます。 マルチクライアントファイルの圧縮解除時に ETID パラメータを指定しなければ、ファイル内のすべてのレコードが圧縮解除されます。

ファイル 20 内の USER1 が所有するレコードのみが圧縮解除され、シーケンシャル出力ファイルに出力されます。

ADACMP  DECOMPRESS  INFILE=20,ETID=USER1

Top of page

ADACMP DECOMPRESS

例 1

DECOMPRESS 機能を実行します。 入力データセットには、ADAULD ユーティリティの前回実行時の出力を使用します。

ADACMP DECOMPRESS

例 2

Adabas ファイル 23 を圧縮解除します。 非圧縮出力に、各レコードの ISN 値を含めます。

ADACMP DECOMPRESS INFILE=23,ISN

Top of page