HFZDATST side file availability test utility

A utility program, HFZDATST, is provided to help determine the availability of matching source mapping side files for programs within load modules. Normally, HFZDATST would be used during an installation phase, to check if existing compile listings or side file rebuild processes had produced usable side files, should abends occur in the program suite. It is a way of determining before an abend occurs, if matching compile listings or side files are available for a program.

The basic operation of HFZDATST, with no input parameters, is to scan all programs in load modules of the //STEPLIB DD first concatenation data set. Each program or CSECT is tested for an available matching side file from the corresponding HFZCNFxx DataSets option list of side file data sets, and a search report is written to //HFZTRACE DD, if there is one in the job step. All of the side file DD statements for each language, such as //HFZLCOB for COBOL, can be added to the HFZDATST job step, and they are searched first for the corresponding program language before searching any HFZCNFxx options data sets.

A sample job for invoking the HFZDATST utility is as follows:

//HFZDATST JOB ...
//RUN      EXEC PGM=HFZDATST,PARM='parms'
//STEPLIB  DD   DISP=SHR,DSN=load_lib_dsn
//HFZCSV   DD   SYSOUT=*
The optional PARM field can be added to the EXEC PGM=HFZDATST JCL statement in the form:
Figure 1. Syntax

1 PARM='PGM=load_module_name'
where:
load_module_name
The name of a load module in the //STEPLIB DD first concatenation data set. If the load module name that is specified is shorter than 8 characters, then it is used as a filter to match against the same first characters of all load module names.

For example, specifying


PARM='PGM=KACBB092'

tests only the load module KACBB092, whereas specifying


PARM='PGM=KAC'

tests all load modules with names starting with KAC in the first STEPLIB data set.

A consolidated report is created from each run of HFZDATST, with a one-line result for each program search, which is written to the //HFZCSV DD. The HFZCSV output is in comma-separated-value (CSV) format, which might be useful if importing the data into a spreadsheet program, for example. For a copy of the same data in a column-aligned format (which is more suited to editor review), add //HFZFLAT DD to align the CSV data with blanks.

The HFZDATST process for a STEPLIB does not re-test programs or CSECTS that occur in a subsequent load module.

HFZDATST cannot exactly replicate a side file test that would occur under an abend condition.

An optional //HFZNOTST DD can be added to provide a blank-delimited list of prefixes for program names that are to be excluded from side file checking. For example:

//HFZNOTST DD * 
XYZ ERR1*       
ABCD
/*              
Appending an asterisk to the program name prefix is optional and does not alter the HFZDATST behavior.