Previous Topic: The CA Compress/2 Utilities

Next Topic: Prepass Statistics


Prepass

Prepass test compresses a data set and creates a File Descriptor Table (FDT) for CA Compress/2 to use to compress and expand the data. The Interactive User Interface also performs this function. Both methods create FDTs with an Integrity Check Block (ICB) for additional safety.

Note: FDTs created with older releases of the Prepass utility may not have the ICB.

All or a portion of the file can be Prepassed. Prepass collects statistical information relating to compression of the Prepassed file and builds a sequential FDT to contain this information. The FDT must be present (through JCL specification) in every job step that expands or compresses the data set.

Prepass is invoked by executing the program named SHRINK and supplying a PARM value in the form P=xxx, where xxx is either the word ALL or a three-digit number. If ALL is coded, the entire data set defined by the INFILE DD statement is Prepassed (read). Coding a three-digit number indicates, in thousands, the number of logical records to Prepass. The first xxx thousand records in the data set are read, the FDT is constructed and written, and the utility goes immediately to end-of-job without reading the remaining records in the data set.

Member SHR2PASS in YOUR.CAI.CCVBJCL executes the Prepass function. The PARM specification P=015 indicates that the first 15,000 records of the INFILE data set are Prepassed (or the entire data set if it contains fewer than 15,000 records). In most cases, it is unnecessary to Prepass more than five to ten percent of a data set in order to collect accurate compression statistics for the FDT.

The optional RECDEF DD statement defines the data set containing user-specified RDL for the data set. As shown, user-specified record definitions are optional. If omitted, Prepass assumes defaults based on the data set's attributes. The defaults assumed by Prepass Utility produce good compression and often execute faster than more precise user specifications. Seethe chapter Record Definition for more information.

COBOL users should specify record definitions in all cases. To direct Prepass to supply default definitions for COBOL users, use the following minimum record definition:

//RECDEF DD *
L.
 /*

Compressed records are variable-length, and the L. specification prefixes the compressed data with a binary halfword containing its length, including the length field. This gives the COBOL program access to the length of the compressed data.