This section describes the job control information required to run ADACMP on the z/OS operating system and shows examples of job streams.
Note
When the recovery log is active, sequential data sets used by the utilities whose runs
are logged on the RLOG must be kept and made available for any recovery operation; for
example, the DDEBAND input to an ADALOD LOAD operation.
This document covers the following topics:
User exit 6 can be used to perform user processing on a record before it is processed by the ADACMP COMPRESS utility. It can also be used to control the sequence and contents of the decompressed records that are output from the ADACMP DECOMPRESS utility; when used in this way, the user exit controls which decompressed records ADACMP writes to the DDAUSBA data set. For more information about user exit 6, read User Exit 6 (User Processing Before Data Compression) .
If user exit 6 is to be used during ADACMP execution, the specified user exit routine must be loadable at execution time; that is, it must be assembled and linked into the Adabas load library (or any library concatenated with it).
The ADACMP COMPRESS utility job must specify:
where:
exit-name | is the name of a user routine that gets control at the user exit; the name can be up to 8 characters long. |
For more information, read UEXn : User Exit .
If a collation user exit is to be used during ADACMP execution, the ADARUN CDXnn parameter must be specified for the utility run.
Used in conjunction with the universal encoding support (UES), the format of the collation descriptor user exit parameter is:
where:
nn | is the number of the collation descriptor exit, a two-digit decimal integer in the range 01-08 inclusive. |
exit-name | is the name of the user routine that gets control at the collation descriptor exit; the name can be up to 8 characters long. |
Only one program may be specified for each collation descriptor exit. Up to 8 collation descriptor exits may be specified (in any order). For more information, read CDXnn : Collation Descriptor User Exit .
Data Set | DD Name | Storage | More Information |
---|---|---|---|
User input data (COMPRESS function) |
DDEBAND | tape/ disk | |
Compressed data (DECOMPRESS function) |
DDEBAND | tape/ disk | Not used if the parameter INFILE is specified |
Compressed data for a data base with files containing large
object (LB) fields (COMPRESS function) |
DDAUSB1 | tape/disk | This additional data set receives the compressed large object records to be loaded into the LOB file as the compressed records in the first output data set (DDAUSBA) are loaded into the base file |
Compressed data (COMPRESS function) |
DDAUSBA | tape/ disk | |
Decompressed data (DECOMPRESS function) |
DDAUSBA | tape/ disk | |
Rejected data | DDFEHL | tape/ disk | |
ADACMP report | DDDRUCK | printer | |
ADARUN messages | DDPRINT | printer | |
ADARUN parameters | DDCARD | reader | |
Time zone file | TZINFO | disk | Required with the TZ parameter. |
ADACMP parameters and data definitions | DDKARTE | reader |
In the JOBS data set, refer to ADACMP and ADACMPS for the COMPRESS examples and ADACMPD for the DECOMPRESS example.
This example can be found in the ADACMP member of the JOBS data set.
//ADACMP JOB //* //* ADACMP COMPRESS //* COMPRESS A FILE //* //CMP EXEC PGM=ADARUN //STEPLIB DD DISP=SHR,DSN=ADABAS.ADAvrs.LOAD <=== ADABAS LOAD //TZINFO DD DISP=SHR,DSN=ADABAS.Vvrs.TZ00 //* //DDDRUCK DD SYSOUT=X //DDPRINT DD SYSOUT=X //SYSUDUMP DD SYSOUT=X //DDEBAND DD DISP=OLD,DSN=EXAMPLE.DByyyyy.INPUT,UNIT=TAPE, <=== // VOL=SER=TAPE01 <=== //DDAUSBA DD DISP=(NEW,KEEP),DSN=EXAMPLE.DByyyyy.COMP01,UNIT=DISK, <== // VOL=SER=DISK01,SPACE=(TRK,(200,10),RLSE) //DDFEHL DD DISP=(NEW,KEEP),DSN=EXAMPLE.DByyyyy.FEHL,UNIT=DISK, <=== // VOL=SER=DISK01,SPACE=(TRK,1) //DDCARD DD * ADARUN PROG=ADACMP,MODE=MULTI,SVC=xxx,DEVICE=dddd,DBID=yyyyy /* //DDKARTE DD * ADACMP COMPRESS FILE=1 ADACMP FNDEF='01,AA,008,B,DE' ADACMP FNDEF='01,BA,020,A,NU,DE' ADACMP FNDEF='01,BB,015,A,NU,DE' ADACMP FNDEF='01,BC,001,A,FI' ADACMP FNDEF='01,CA,001,A,NU,DE' ADACMP FNDEF='01,CB,002,U,NU,DE' ADACMP FNDEF='01,CC,010,A,NU,DE' ADACMP FNDEF='01,CD,002,U,NU,DE' ADACMP FNDEF='01,DA,005,U,NU' ADACMP FNDEF='01,DB,020,A,NU,DE' ADACMP FNDEF='01,DC,015,A,NU,DE' ADACMP FNDEF='01,DD,002,A,NU,DE' ADACMP FNDEF='01,DE,005,U,NU,DE' ADACMP FNDEF='01,DF,008,A,NU,DE' ADACMP FNDEF='01,FA,020,A,NU,DE' ADACMP FNDEF='01,FB,006,U,NU,DE' ADACMP FNDEF='01,FC,006,U,NU' ADACMP FNDEF='01,GA,002,U,NU' ADACMP FNDEF='01,HA,002,U,NU' ADACMP FNDEF='01,IA,002,U,NU' ADACMP FNDEF='01,KA,002,U,NU' ADACMP FNDEF='01,LA,030,A,NU,DE' ADACMP SUBDE='SB=DE(3,5)' ADACMP SUPDE='SP=CA(1,1),CB(1,2),CD(1,2)' ADACMP PHONDE='PA(BA)' /*
The following example can be found in member ADACMPS of the JOBS data set. This example shows the use of the ADACMP spanned record parameters and extended MU/PE limit parameters.
//ADACMP JOB //* //* ADACMP COMPRESS //* COMPRESS A FILE //* USING MUPEX AND SPAN OPTIONS WITH 2-BYTE MU/PE COUNTS //* //CMP EXEC PGM=ADARUN //STEPLIB DD DISP=SHR,DSN=ADABAS.ADAvrs.LOAD <=== ADABAS LOAD //TZINFO DD DISP=SHR,DSN=ADABAS.Vvrs.TZ00 //* //DDDRUCK DD SYSOUT=X //DDPRINT DD SYSOUT=X //SYSUDUMP DD SYSOUT=X //DDEBAND DD DISP=OLD,DSN=EXAMPLE.DByyyyy.INPUT,UNIT=TAPE, <=== // VOL=SER=TAPE01 <=== //DDAUSBA DD DISP=(NEW,KEEP),DSN=EXAMPLE.DByyyyy.COMP01,UNIT=DISK, < // VOL=SER=DISK01,SPACE=(TRK,(200,10),RLSE) //DDFEHL DD DISP=(NEW,KEEP),DSN=EXAMPLE.DByyyyy.FEHL,UNIT=DISK, <== // VOL=SER=DISK01,SPACE=(TRK,1) //DDCARD DD * ADARUN PROG=ADACMP,MODE=MULTI,SVC=xxx,DEVICE=3390,DBID=YYYYY /* //DDKARTE DD * ADACMP COMPRESS FILE=1 ADACMP FNDEF='01,AA,008,B,DE' ADACMP FNDEF='01,BA,020,A,NU,DE' ADACMP FNDEF='01,BB,015,A,NU,DE' ADACMP FNDEF='01,BC,001,A,FI' ADACMP FNDEF='01,CA,001,A,NU,DE' ADACMP FNDEF='01,CB,002,U,NU,DE' ADACMP FNDEF='01,CC,010,A,NU,DE' ADACMP FNDEF='01,CD,002,U,NU,DE' ADACMP FNDEF='01,DA,005,U,NU' ADACMP FNDEF='01,DB,020,A,NU,DE' ADACMP FNDEF='01,DC,015,A,NU,DE' ADACMP FNDEF='01,DD,002,A,NU,DE' ADACMP FNDEF='01,DE,005,U,NU,DE' ADACMP FNDEF='01,DF,008,A,NU,DE' ADACMP FNDEF='01,FA,020,A,NU,DE' ADACMP FNDEF='01,FB,006,U,NU,DE' ADACMP FNDEF='01,FC,006,U,NU' ADACMP FNDEF='01,GA,002,U,NU' ADACMP FNDEF='01,HA,002,U,NU' ADACMP FNDEF='01,IA,002,U,NU' ADACMP FNDEF='01,KA,002,U,NU' ADACMP FNDEF='01,LA,030,A,NU,DE' ADACMP FNDEF='01,MA,010,A,MU,NU,DE' ADACMP FNDEF='01,PB,PE' ADACMP FNDEF='02,P1,008,A,NU' ADACMP FNDEF='02,P2,002,A,NU' ADACMP FNDEF='02,P3,020,A,NU' ADACMP SUBDE='SB=DE(3,5)' ADACMP SUPDE='SP=CA(1,1),CB(1,2),CD(1,2)' ADACMP PHONDE='PA(BA)' ADACMP MUPEX <== EXTENDED MU/PE FILE ADACMP MUPECOUNT=2 <== 2-BYTE MU/PE COUNTS IN INPUT ADACMP SPAN <== SPANNED RECORD FILE ADACMP DATADEVICE=3390 <== DATA STORAGE DEVICE TYPE /* //
The following example can be found in member ADACMPD of the JOBS data set.
//ADACMP JOB //* //* ADACMP COMPRESS //* DECOMPRESS A FILE //* //DECMP EXEC PGM=ADARUN //STEPLIB DD DISP=SHR,DSN=ADABAS.ADAvrs.LOAD <=== ADABAS LOAD //* //DDASSOR1 DD DISP=SHR,DSN=EXAMPLE.DByyyyy.ASSOR1 <=== ASSO //DDDATAR1 DD DISP=SHR,DSN=EXAMPLE.DByyyyy.DATAR1 <===DATA //DDWORKR1 DD DISP=SHR,DSN=EXAMPLE.DByyyyy.WORKR1 <===WORK //TZINFO DD DISP=SHR,DSN=ADABAS.Vvrs.TZ00 //DDDRUCK DD SYSOUT=X //DDPRINT DD SYSOUT=X //SYSUDUMP DD SYSOUT=X //DDEBAND DD DISP=OLD,DSN=EXAMPLE.DByyyyy.COMP01,UNIT=TAPE, // VOL=SER=TAPE01 //DDAUSBA DD DISP=(NEW,KEEP),DSN=EXAMPLE.DByyyyy.DECOMP01,UNIT=DISK, // VOL=SER=DISK01,SPACE=(TRK,(200,10),RLSE) //DDFEHL DD DISP=(NEW,KEEP),DSN=EXAMPLE.DByyyyy.FEHL,UNIT=DISK, // VOL=SER=DISK01,SPACE=(TRK,1) //DDCARD DD * ADARUN PROG=ADACMP,MODE=MULTI,SVC=xxx,DEVICE=dddd,DBID=yyyyy /* //DDKARTE DD * ADACMP DECOMPRESS INFILE=1 /*
The following compression example can be found in member ADACMPU of the JOBS data set. It can be used as a basis for compression jobs that make use of UES parameters, wide-character field formats, or collation descriptors.
//ADACMPU JOB //* //* ADACMP COMPRESS //* COMPRESS A FILE //* USING UES FEATURES //* //CMP EXEC PGM=ADARUN //STEPLIB DD DISP=SHR,DSN=ADABAS.ADAvrs.LOAD <=== ADABAS LOAD // DD DISP=SHR,DSN=SAG.ICSvrs.L0nn <=== Code pages //* //TZINFO DD DISP=SHR,DSN=ADABAS.ADAvrs.TZ00 <=== TIMEZONE DATA //DDDRUCK DD SYSOUT=X //DDPRINT DD SYSOUT=X //SYSUDUMP DD SYSOUT=X //DDEBAND DD DISP=OLD,DSN=EXAMPLE.DBYYYYY.INPUT,UNIT=TAPE, <=== // VOL=SER=TAPE01 <=== //DDAUSBA DD DSN=EXAMPLE.DBYYYYY.COMP01,UNIT=DISK, <=== // VOL=SER=DISK01,SPACE=(TRK,(200,10),RLSE),DISP=(NEW,KEEP) //DDFEHL DD DISP=(NEW,KEEP),DSN=EXAMPLE.DBYYYYY.FEHL, <=== // VOL=SER=DISK01,SPACE=(TRK,1),UNIT=DISK //DDCARD DD * ADARUN PROG=ADACMP,MODE=MULTI,SVC=XXX,DEVICE=3390,DBID=YYYYY /* //DDKARTE DD * ADACMP COMPRESS FILE=1 ADACMP FACODE=273 ADACMP FNDEF='01,AA,008,B,DE' ADACMP FNDEF='01,BA,020,A,NU,DE' ADACMP FNDEF='01,BB,015,A,NU,DE' ADACMP FNDEF='01,BC,001,A,FI' ADACMP FNDEF='01,CA,001,A,NU,DE' ADACMP FNDEF='01,CB,002,U,NU,DE' ADACMP FNDEF='01,CC,010,A,NU,DE' ADACMP FNDEF='01,CD,002,U,NU,DE' ADACMP FNDEF='01,DA,005,U,NU' ADACMP FNDEF='01,DB,020,A,NU,DE' ADACMP FNDEF='01,DC,015,A,NU,DE' ADACMP FNDEF='01,DD,002,A,NU,DE' ADACMP FNDEF='01,DE,005,U,NU,DE' ADACMP FNDEF='01,DF,008,A,NU,DE' ADACMP FNDEF='01,FA,020,A,NU,DE' ADACMP FNDEF='01,FB,006,U,NU,DE' ADACMP FNDEF='01,FC,006,U,NU' ADACMP FNDEF='01,GA,002,U,NU' ADACMP FNDEF='01,HA,002,U,NU' ADACMP FNDEF='01,IA,002,U,NU' ADACMP FNDEF='01,KA,002,U,NU' ADACMP FNDEF='01,LA,030,A,NU,DE' ADACMP SUBDE='SB=DE(3,5)' ADACMP SUPDE='SP=CA(1,1),CB(1,2),CD(1,2)' ADACMP PHONDE='PA(BA)' /* //