JCL Requirements and Examples

This section describes the job control information required to run ADAINV on the z/OS operating system and shows examples of job streams.

This document covers the following topics:


Collation with User Exit

If a collation user exit is to be used during ADAINV 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). See the Adabas DBA Reference documentation for more information.

Requirements to Run ADAINV JCL

Data Set DD Name Storage More Information
Associator DDASSORn disk  
Intermediate storage DDTEMPR1 disk  
Sort area DDSORTR1 disk  
Sort area DDSORTR2 disk Optional additional SORT area (see Note).
Recovery log (RLOG) DDRLOGR1 disk Required when using the recovery log option
ADARUN parameters DDCARD reader Operations
ADAINV parameters DDKARTE reader  
ADARUN messages DDPRINT printer Messages and Codes
ADAINV messages DDDRUCK printer Messages and Codes

Note
A second sort data set can optionally be defined using DD DDSORTR2. If DDSORTR2 is specified, both sort data sets must be on the same device type (SORTDEV parameter). If the SORTSIZE parameter is specified, both sort data must be exactly half the size specified in the SORTSIZE parameter. If the SORTSIZE parameter is not specified, and DDSORTR1 and DDSORTR2 fill up, an attempt to allocate additional space at the end of DDSORTR2 will be made.

*

ADAINV JCL Examples

Couple Files

Refer to ADAINVCO in the JOBS data set for this example.

//ADAINVCO  JOB
//*
//*    ADAINV:  COUPLE FILES
//*
//INV       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
//DDTEMPR1  DD   DISP=OLD,DSN=EXAMPLE.DByyyyy.TEMPR1 <===== TEMP
//DDSORTR1  DD   DISP=OLD,DSN=EXAMPLE.DByyyyy.SORTR1 <===== SORT
//DDDRUCK   DD   SYSOUT=X
//DDPRINT   DD   SYSOUT=X
//SYSUDUMP  DD   SYSOUT=X
//DDCARD    DD   *
ADARUN PROG=ADAINV,MODE=MULTI,SVC=xxx,DEVICE=dddd,DBID=yyyyy
/*
//DDKARTE   DD   *
ADAINV COUPLE FILE=2,3,DESCRIPTOR='BB,BB'
ADAINV        TEMPSIZE=100,SORTSIZE=100
/*

Invert File

Refer to ADAINV in the JOBS data set for this example.

//ADAINVDE  JOB
//*
//*     ADAINV:  INVERT A FIELD TO A DE
//*
//INV       EXEC PGM=ADARUN
//STEPLIB   DD   DISP=SHR,DSN=ADABAS.ADAvrs.LOAD      <=== ADABAS LOAD
//*
//DDASSOR1  DD   DISP=SHR,DSN=EXAMPLE.DByyyyy.ASSOR1 <===== ASSO
//DDTEMPR1  DD   DISP=OLD,DSN=EXAMPLE.DByyyyy.TEMPR1 <===== TEMP
//DDSORTR1  DD   DISP=OLD,DSN=EXAMPLE.DByyyyy.SORTR1 <===== SORT
//DDDRUCK   DD   SYSOUT=X
//DDPRINT   DD   SYSOUT=X
//SYSUDUMP  DD   SYSOUT=X
//DDCARD    DD   *
ADARUN PROG=ADAINV,MODE=MULTI,SVC=xxx,DEVICE=dddd,DBID=yyyyy
/*
//DDKARTE   DD   *
ADAINV INVERT FILE=1
ADAINV FIELD='AC'
ADAINV SUPDE='S1,UQ=AA(1,3),AD(2,4)'
ADAINV TEMPSIZE=100,SORTSIZE=100
/*

Invert File Using Unformatted Temporary Data Sets for TEMP and SORT

Refer to ADAINVTM in the JOBS data set for this example.

//ADAINVDE  JOB
//*
//*     ADAINV:  INVERT A FIELD TO A DE
//*
//INV       EXEC PGM=ADARUN
//STEPLIB  DD  DISP=SHR,DSN=ADABAS.ADAvrs.LOAD            <=== LOAD 
//*                                                                 
//DDASSOR1 DD  DISP=SHR,DSN=EXAMPLE.DByyyyy.ASSOR1        <=== ASSO 
//DDSORTR1 DD  DISP=NEW,UNIT=SYSDA,SPACE=(CYL,(100,80)),            
//             DSN=&&SORTR1                               <=== SORT 
//DDTEMPR1 DD  DISP=NEW,UNIT=SYSDA,SPACE=(CYL,(100,80)),            
//             DSN=&&TEMPR1                               <=== TEMP 
//DDDRUCK  DD  SYSOUT=*                                             
//DDPRINT  DD  SYSOUT=*                                             
//SYSUDUMP DD  SYSOUT=*                                             
//DDCARD   DD  *                                                    
ADARUN PROG=ADAINV,MODE=MULTI,SVC=xxx,DEVICE=dddd,DBID=yyyyy
/*
//DDKARTE   DD   *
ADAINV INVERT FILE=1
ADAINV FIELD='AC'
ADAINV SUPDE='S1,UQ=AA(1,3),AD(2,4)'
/*

The TEMP and SORT data sets each have an initial allocation of 100 cylinders. If either TEMP or SORT fills up during processing, additional extents of 80 cylinders will be allocated and the job will continue processing.