JCL Requirements and Examples

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 Exits with ADACMP

Compression with User Exit

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:

graphics/util_adarun_uex6.png

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 .

Collation with 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:

graphics/util_adarun_cdxnn.png

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 .

Requirements to Run ADACMP JCL

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  

JCL Examples

In the JOBS data set, refer to ADACMP and ADACMPS for the COMPRESS examples and ADACMPD for the DECOMPRESS example.

ADACMP COMPRESS

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
/*
//   

ADACMP DECOMPRESS

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                                             
/*

Using ADACMP with UES Parameters, Wide Field Formats, or Collation Descriptions

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)'                     
/*                                         
//