This section describes the job control information required to run ADARES on the z/OS operating system and shows examples of job streams.
Notes:
This document covers the following topics:
Data Set | DD Name | Storage | More Information |
---|---|---|---|
Sequential protection log or ADASAV DDSAVEn output | DDSIIN | tape/ disk | Input log for COPY, REGENERATE, and REPAIR functions. |
Multiple protection log | DDPLOGRn | disk | Input logs for PLCOPY function, and BACKOUT DPLOG/MPLOG . |
Multiple command log | DDCLOGRn | disk | Input logs for CLCOPY function. |
Sequential protection log | DDBACK | tape/ disk | Input log for BACKOUT function (not BACKOUT DPLOG). |
Copied log | DDSIAUS1 | tape/ disk | Output of COPY, CLCOPY, PLCOPY functions. |
Extra copied log | DDSIAUS2 | tape/ disk | Required only if two copies are to be produced by a copy function (with TWOCOPIES). |
Recovery log (RLOG) | DDRLOGR1 | disk | Required when using ADARAI. |
Data Storage | DDDATARn | disk | Required only for REGENERATE if FROMCP=SYN1 or SYN4. |
Associator | DDASSORn | disk | |
ADARUN parameters | DDCARD | reader | Operations |
ADARES parameters | DDKARTE | reader | |
ADARUN messages | DDPRINT | printer | Messages and Codes |
ADARES messages | DDDRUCK | printer | Messages and Codes |
//ADARESCP JOB //* //* ADARES: COPY SEQUENTIAL PROTECTION LOG //* //RES 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 //DDSIIN DD DSN=EXAMPLE.DByyyyy.SIBA, <=== PLOG // VOL=SER=vvvvvv,DISP=OLD,UNIT=TAPE //DDSIAUS1 DD DSN=EXAMPLE.DByyyyy.PLOG(+1), <=== PLOG COPY // VOL=SER=vvvvvv,UNIT=TAPE,DISP=(NEW,CATLG) //DDDRUCK DD SYSOUT=X //DDPRINT DD SYSOUT=X //SYSUDUMP DD SYSOUT=X //DDCARD DD * ADARUN PROG=ADARES,MODE=MULTI,SVC=xxx,DEVICE=dddd,DBID=yyyyy /* //DDKARTE DD * ADARES COPY /*
Refer to ADARESCP in the JOBS data set for this example.
//ADARESCD JOB //* //* ADARES: COPY DUAL/MULTIPLE PROTECTION LOG //* TWO COPIES OF OUTPUT ARE TO BE CREATED //* //RES 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 //DDPLOGR1 DD DISP=SHR,DSN=EXAMPLE.DByyyyy.PLOGR1 <=== PLOG1 //DDPLOGR2 DD DISP=SHR,DSN=EXAMPLE.DByyyyy.PLOGR2 <=== PLOG2 //DDSIAUS1 DD DSN=EXAMPLE.DByyyyy.PLOG1(+1), <=== PLOG COPY 1 // VOL=SER=vvvvvv,UNIT=TAPE,DISP=(NEW,CATLG) //DDSIAUS2 DD DSN=EXAMPLE.DByyyyy.PLOG2(+1), <=== PLOG COPY 2 // VOL=SER=vvvvvv,UNIT=TAPE,DISP=(NEW,CATLG) //DDDRUCK DD SYSOUT=X //DDPRINT DD SYSOUT=X //SYSUDUMP DD SYSOUT=X //DDCARD DD * ADARUN PROG=ADARES,MODE=MULTI,SVC=xxx,DEVICE=dddd,DBID=yyyyy /* //DDKARTE DD * ADARES PLCOPY TWOCOPIES /*
Refer to ADARESCD in the JOBS data set for this example.
Note
Note that when intermediate data sets are used for both CLCOPY and PLCOPY, the data
set names must be unique so that they are not overwritten.
Following is sample JCL for allocating the required intermediate data sets MERGIN1 and MERGIN2:
//ALLOC JOB //* //* Example to allocate the MERGIN1 and the MERGIN2 data sets //* //ALLOC EXEC PGM=IEFBR14 //MERGIN1 DD DISP=(NEW,CATLG,DELETE),DSN=EXAMPLE.PINTERI, // SPACE=(CYL,(1,10,0)),UNIT=3390,VOL=SER=volser, // RECFM=VB,BLKSIZE=27998,LRECL=27994 //MERGIN2 DD DISP=(NEW,CATLG,DELETE),DSN=EXAMPLE.PINTERO, // SPACE=(CYL,(1,10,0)),UNIT=3390,VOL=SER=volser, // RECFM=VB,BLKSIZE=27998,LRECL=27994
Refer to ADARESMP in the JOBS data set for this example.
//ADARESIP JOB //* //* ADARES: COPY/MERGE DUAL/MULTIPLE PROTECTION LOGS FROM ALL //* NUCLEI IN AN ADABAS CLUSTER //* PPT IS TO BE IGNORED //* THIS IS ONLY FOR EMERGENCY USE WHEN THE PPT HAS BEEN //* OVER-WRITTEN - USE CAUTION WHEN SUBMITTING //* //RES 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 //DDPLOG01 DD DISP=SHR,DSN=EXAMPLE.DBYYYYY.PLOGR1 <=== PLOG1 NUC1 //DDPLOG02 DD DISP=SHR,DSN=EXAMPLE.DBYYYYY.PLOGR2 <=== PLOG2 NUC1 //DDPLOG03 DD DISP=SHR,DSN=EXAMPLE.DBYYYYY.PLOGR1A <=== PLOG1 NUC2 //DDPLOG04 DD DISP=SHR,DSN=EXAMPLE.DBYYYYY.PLOGR2A <=== PLOG2 NUC2 //DDPLOG05 DD DISP=SHR,DSN=EXAMPLE.DBYYYYY.PLOGR1B <=== PLOG1 NUC3 //DDPLOG06 DD DISP=SHR,DSN=EXAMPLE.DBYYYYY.PLOGR2B <=== PLOG2 NUC3 //MERGIN2 DD DISP=SHR,DSN=EXAMPLE.INTERO <=== INTER //MERGIN1 DD DISP=SHR,DSN=EXAMPLE.INTERI <=== INTER //DDSIAUS1 DD DSN=EXAMPLE.DBYYYYY.PLOG1(+1), <=== PLOG COPY // VOL=SER=ADAXXX,UNIT=TAPE,DISP=(NEW,CATLG) //DDDRUCK DD SYSOUT=X //DDPRINT DD SYSOUT=X //SYSUDUMP DD SYSOUT=X //DDCARD DD * ADARUN PROG=ADARES,MODE=MULTI,SVC=XXX,DEVICE=3390,DBID=YYYYY /* //DDKARTE DD * ADARES PLCOPY NOPPT /* //
Refer to ADARESIP in the JOBS data set.
//ADARESCC JOB //* //* ADARES: COPY DUAL/MULTIPLE COMMAND LOG //* //RES 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 //DDCLOGR1 DD DISP=SHR,DSN=EXAMPLE.DByyyyy.CLOGR1 <=== CLOG1 //DDCLOGR2 DD DISP=SHR,DSN=EXAMPLE.DByyyyy.CLOGR2 <=== CLOG2 //DDSIAUS1 DD DSN=EXAMPLE.DByyyyy.CLOG, <=== OUTPUT OF // VOL=SER=vvvvvv,UNIT=TAPE,DISP=(NEW,CATLG) CLCOPY //DDDRUCK DD SYSOUT=X //DDPRINT DD SYSOUT=X //SYSUDUMP DD SYSOUT=X //DDCARD DD * ADARUN PROG=ADARES,MODE=MULTI,SVC=xxx,DEVICE=dddd,DBID=yyyyy /* //DDKARTE DD * ADARES CLCOPY /*
Refer to ADARESCC in the JOBS data set for this example.
Note
Note that when intermediate data sets are used for both CLCOPY and PLCOPY, the data
set names must be unique so that they are not overwritten.
Following is sample JCL for allocating the required intermediate data sets MERGIN1 and MERGIN2:
//ALLOC JOB //* //* Example to allocate the MERGIN1 and the MERGIN2 data sets //* //ALLOC EXEC PGM=IEFBR14 //MERGIN1 DD DISP=(NEW,CATLG,DELETE),DSN=EXAMPLE.CINTERI, // SPACE=(CYL,(1,10,0)),UNIT=3390,VOL=SER=volser, // RECFM=VB,BLKSIZE=27998,LRECL=27994 //MERGIN2 DD DISP=(NEW,CATLG,DELETE),DSN=EXAMPLE.CINTERO, // SPACE=(CYL,(1,10,0)),UNIT=3390,VOL=SER=volser, // RECFM=VB,BLKSIZE=27998,LRECL=27994
Refer to ADARESMC in the JOBS data set for this example.
//ADARESCM JOB //* //* ADARES: MERGE SEQUENTIAL COMMAND LOGS //* FOR USE WITH AN ADABAS NUCLEUS CLUSTER //* //RES 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 //DDCLOG01 DD DISP=SHR,DSN=EXAMPLE.DBYYYYY.CLOGR1A <=== CLOG1 //DDCLOG02 DD DISP=SHR,DSN=EXAMPLE.DBYYYYY.CLOGR1B <=== CLOG2 //DDCLOG03 DD DISP=SHR,DSN=EXAMPLE.DBYYYYY.CLOGR1C <=== CLOG3 //DDSIAUS1 DD DSN=EXAMPLE.DBYYYYY.CLOGM, <=== OUTPUT OF // VOL=SER=ADAXXX,UNIT=TAPE,DISP=(NEW,CATLG) CLOG MERGE //DDDRUCK DD SYSOUT=X //DDPRINT DD SYSOUT=X //SYSUDUMP DD SYSOUT=X //DDCARD DD * ADARUN PROG=ADARES,MODE=MULTI,SVC=XXX,DEVICE=3390,DBID=YYYYY /* //DDKARTE DD * ADARES MERGE CLOG,NUMLOG=3 /* //
Refer to ADARESCM in the JOBS data set for this example.
//ADARESSP JOB //* //* ADARES: BACKOUT FROM A SEQUENTIAL PLOG //* //RES 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 //DDBACK DD DSN=EXAMPLE.DByyyyy.PLOG(-5), <=== PLOG TAPE // UNIT=TAPE,DISP=OLD //DDDRUCK DD SYSOUT=X //DDPRINT DD SYSOUT=X //SYSUDUMP DD SYSOUT=X //DDCARD DD * ADARUN PROG=ADARES,MODE=MULTI,SVC=xxx,DEVICE=dddd,DBID=yyyyy /* //DDKARTE DD * ADARES BACKOUT PLOGNUM=nnn /*
Refer to ADARESSP in the JOBS data set for this example.
//ADARESB JOB //* //* ADARES: BACKOUT FROM DUAL/MULTIPLE PLOG //* //RES 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 //DDPLOGR1 DD DISP=SHR,DSN=EXAMPLE.DByyyyy.PLOGR1 <=== PLOG1 //DDPLOGR2 DD DISP=SHR,DSN=EXAMPLE.DByyyyy.PLOGR2 <=== PLOG2 //DDDRUCK DD SYSOUT=X //DDPRINT DD SYSOUT=X //SYSUDUMP DD SYSOUT=X //DDCARD DD * ADARUN PROG=ADARES,MODE=MULTI,SVC=xxx,DEVICE=dddd,DBID=yyyyy /* //DDKARTE DD * ADARES BACKOUT DPLOG /*
Refer to ADARESB in the JOBS data set for this example.
//ADARESR JOB //* //* ADARES: REGENERATE //* //RES 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 //DDSIIN DD DSN=EXAMPLE.DByyyyy.PLOG(-5), <=== PLOG TAPE // UNIT=TAPE,DISP=OLD //DDDRUCK DD SYSOUT=X //DDPRINT DD SYSOUT=X //SYSUDUMP DD SYSOUT=X //DDCARD DD * ADARUN PROG=ADARES,MODE=MULTI,SVC=xxx,DEVICE=dddd,DBID=yyyyy /* //DDKARTE DD * ADARES REGENERATE FILE=1 /*
Refer to ADARESR in the JOBS data set for this example.
//ADARESRP JOB //* //* ADARES: REPAIR DATASTORAGE //* //RES 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 //DDSIIN DD DSN=EXAMPLE.DByyyyy.SAVE, <=== SAVE OUTPUT // DISP=OLD,UNIT=TAPE // DD DSN=EXAMPLE.DByyyyy.PLOG(-5), <=== PLOG TAPE // DISP=OLD,UNIT=TAPE //DDDRUCK DD SYSOUT=X //DDPRINT DD SYSOUT=X //SYSUDUMP DD SYSOUT=X //DDCARD DD * ADARUN PROG=ADARES,MODE=MULTI,SVC=xxx,DEVICE=dddd,DBID=yyyyy /* //DDKARTE DD * ADARES REPAIR DSRABN=3456-3490
Refer to ADARESRP in the JOBS data set for this example.