The ADACMP DECOMPRESS function decompresses each record and then stores the record in a sequential dataset. The records are output in variable-length, blocked format. Each decompressed record is output either with or without the ISN option according to the format shown below:
length xx [ISN] data
where
length | is a two-byte binary length of the data, + 8 (or +4 if the ISN parameter is not specified). |
xx | is a two-byte field containing binary zeros. |
ISN | is a four-byte binary ISN of the record. |
data | is a decompressed data record. |
The fields of the data record are provided in the order in which they appeared in the FDT when the file was unloaded. The standard length and format are in effect for each field.
If a field value exceeds the standard length, the value will be truncated to the standard length if the field is alphanumeric and the TRUNCATE parameter was specified; otherwise, ADACMP writes the record to the DD/FEHL error dataset (see the following section).
Any count bytes for multiple-value fields or periodic groups contained in the record are included in the decompressed data output. ADACMP generates a count of 1 if the MU field or PE group is empty. This makes it possible to use the output of the DECOMPRESS operation as the input to a subsequent COMPRESS operation.
Data records rejected by the DECOMPRESS operation are written to the DD/FEHL error dataset. ADACMP rejects a record whenever a compressed field's size is greater than the default length held in the FDT, unless the TRUNCATE parameter is specified.
The records are output in variable blocked format, and have the following structure:
Bytes | Description |
---|---|
0-1 | Record length in binary format (see note 2 below) |
2-3 | Set to zero; that is, X'0000' (see note 2 below) |
4-5 | Field name as stored in FDT |
6-7 | Offset from beginning of input record to error value |
8-11 | ISN in binary format |
12 | PE index (if applicable) |
13 | Adabas response code (in hexadecimal)* |
14-15 | (reserved; set to zeros) |
16 | DD/EBAND input record |
* Additionally the following response codes may occur:
X'E7'(231) | Input record too short (DECOMPRESS) |
X'E8'(232) | Output record length error (DECOMPRESS) |
Notes: