Version 8.1.4
 —  Utilities  —

JCL/JCS Requirements and Examples

This section describes the job control information required to run ADARAI with BS2000, z/OS, z/VM, and VSE systems and shows examples of each of the job streams.

This document covers the following topics:


BS2000

This section describes additional considerations and requirements for using ADARAI on a BS2000 system.

Data Set Link Name Storage More Information
Associator DDASSORn disk  
Data Storage DDDATARn disk Required for RECOVER
Work DDWORKR1
DDWORKR4
disk Required for RECOVER
Data protection log DDPLOGRn tape/ disk Required for RECOVER
Recovery log (RLOG) DDRLOGR1 disk  
Job stream input DDJCLIN disk Required for RECOVER
Recovery job output DDJCLOUT disk Required for RECOVER
Recovery job output (JCL for console subtask) DDJCLCON disk Optional; used only for
RECOVER
ADARUN parameters SYSDTA/ DDCARD   Operations
ADARAI parameters SYSDTA/ DDKARTE   Operations
ADARUN messages SYSOUT DDPRINT   Messages and Codes
ADARAI messages SYSLST DDDRUCK   Messages and Codes

BS2000 Data Sets

Handling Sequential Disk Data Sets

There are no restrictions for sequential data sets on public disks.

Sequential data sets on private disks must not be exported; this means that the catalog entry must not be erased and that the recovery job control will not contain /IMPORT-FILE commands for data sets on private disks.

Handling Sequential Tape Data Sets

Software AG recommends not removing catalog entries for sequential data sets on tapes from the system's catalog. If RECOVER does not find a catalog entry for a sequential data set on tape or cartridge, it includes the following statement in the job stream:

/IMPORT-FILE FILE-NAME=tempfile ,...

where tempfile has the following structure:

#ADARAI.RECOVER.TAPE.nnnnn

Using File Generation Groups (FGGs)

There are no restrictions when using FGGs for sequential data sets, whether on disk or on tape.

Input Data Sets

ADARAI tries to access sequential BS2000 data sets using the original catalog entries. If a sequential data set is in a file generation group (FGG), ADARAI assigns the absolute member; ADARAI does not use or change the base pointer.

If sequential data sets are read-protected by passwords, the %%JCL-JOB-HEADER section in the skeleton job control must contain these passwords.

ADARAI neither exports nor erases data sets. If catalog entries for tape data sets no longer exist, ADARAI creates temporary data sets with the names #ADARAI.RECOVER.TAPE.nnnnn, where nnnnn is "00001", "00002", and so on.

ADARAI JCL Examples (BS2000)

Begin Recovery Logging (ADARAI PREPARE)

In SDF Format:

/.ADARAI LOGON
/MODIFY-TEST-OPTIONS DUMP=YES
/REMARK *
/REMARK *A D A R A I   START RECOVERY LOGGING
/REMARK *
/ASS-SYSLST L.RAI.DATA
/ASS-SYSDTA *SYSCMD
/SET-FILE-LINK DDLIB,ADAvrs.MOD
/SET-FILE-LINK DDASSOR1,DB.yyyyy.ASSO
/SET-FILE-LINK DDRLOGR1,DB.yyyyy.RLOGR1,OPEN-MODE=OUTIN,BUFF-LEN=STD(2)
/START-PROGRAM *M(ADA.MOD,ADARUN),PR-MO=ANY
ADARUN PROG=ADARAI,DBID=yyyyy,MODE=MULTI
ADARAI PREPARE RLOGSIZE=5,RLOGDEV=dddd,MINGENS=5
/LOGOFF SYS-OUTPUT=DEL

In ISP Format:

/.ADARAI LOGON
/OPTION MSG=FH,DUMP=YES
/REMARK *
/REMARK *A D A R A I   START RECOVERY LOGGING
/REMARK *
/REMARK *
/SYSFILE SYSLST=L.RAI.DATA
/FILE ADAvrs.MOD,LINK=DDLIB
/FILE DB.yyyyy.ASSO ,LINK=DDASSOR1
/FILE DB.yyyyy.RLOGR1,LINK=DDRLOGR1,OPEN=OUTIN,BLKSIZE=(STD,2)
/EXEC (ADARUN,ADAvrs.MOD)
ADARUN PROG=ADARAI,DBID=yyyyy,MODE=MULTI
ADARAI PREPARE RLOGSIZE=5,RLOGDEV=dddd,MINGENS=5
/LOGOFF NOSPOOL

List the RLOG (ADARAI LIST)

In SDF Format:

/.ADARAI LOGON
/MODIFY-TEST-OPTIONS DUMP=YES
/REMARK *
/REMARK *A D A R A I   LIST RECOVERY LOGS
/REMARK *
/ASS-SYSLST L.RAI.DATA
/ASS-SYSDTA *SYSCMD
/SET-FILE-LINK DDLIB,ADAvrs.MOD
/SET-FILE-LINK DDASSOR1,DB.yyyyy.ASSO
/SET-FILE-LINK DDRLOGR1,DB.yyyyy.RLOGR1
/START-PROGRAM *M(ADA.MOD,ADARUN),PR-MO=ANY
ADARUN PROG=ADARAI,DBID=yyyyy,MODE=MULTI
ADARAI LIST GENS=NO,RLOGDEV=dddd,RELGEN=1
/LOGOFF SYS-OUTPUT=DEL

In ISP Format:

/.ADARAI LOGON
/OPTION MSG=FH,DUMP=YES
/REMARK *
/REMARK *A D A R A I   LIST RECOVERY LOGS
/REMARK *
/REMARK *
/SYSFILE SYSLST=L.RAI.DATA
/FILE ADAvrs.MOD,LINK=DDLIB
/FILE DB.yyyyy.ASSO ,LINK=DDASSOR1
/FILE DB.yyyyy.RLOGR1,LINK=DDRLOGR1
/EXEC (ADARUN,ADAvrs.MOD)
ADARUN PROG=ADARAI,DBID=yyyyy,MODE=MULTI
ADARAI LIST GENS=NO,RLOGDEV=dddd,RELGEN=1
/LOGOFF NOSPOOL

Create Recovery JCL (ADARAI RECOVER)

In SDF Format:

/.ADARAI LOGON
/MODIFY-TEST-OPTIONS DUMP=YES
/REMARK *
/REMARK *A D A R A I   BUILD RECOVERY JCL STREAM
/REMARK *
/DELETE-FILE DB.yyyyy.JCLOUT
/SET-JOB-STEP
/CREATE-FILE DB.yyyyy.JCLOUT,PUB(SPACE=(48,48))
/SET-JOB-STEP
/DELETE-FILE DB.yyyyy.JCLCON
/SET-JOB-STEP
/CREATE-FILE DB.yyyyy.JCLCON,PUB(SPACE=(48,48))
/SET-JOB-STEP
/ASS-SYSLST L.RAI.DATA
/ASS-SYSDTA *SYSCMD

/SET-FILE-LINK DDLIB,ADAvrs.MOD
/SET-FILE-LINK DDASSOR1,DB.yyyyy.ASSO
/SET-FILE-LINK DDRLOGR1,DB.yyyyy.RLOGR1
/SET-FILE-LINK DDPLOGR1,DB.yyyyy.PLOGR1
/SET-FILE-LINK DDPLOGR2,DB.yyyyy.PLOGR2
/SET-FILE-LINK DDJCLIN,DB.yyyyy.JCLIN 
/SET-FILE-LINK DDJCLOUT,DB.yyyyy.JCLOUT 
/SET-FILE-LINK DDJCLCON,DB.yyyyy.JCLCON 
/START-PROGRAM *M(ADA.MOD,ADARUN),PR-MO=ANY
ADARUN PROG=ADARAI,DBID=yyyyy,MODE=MULTI
ADARUN UEX2=EXITR2
ADARAI RECOVER PLOGDEV=2201,FEOFPL=YES,RELGEN=1
/LOGOFF SYS-OUTPUT=DEL

In ISP Format:

/.ADARAI LOGON
/OPTION MSG=FH,DUMP=YES
/REMARK *
/REMARK *A D A R A I   BUILD RECOVERY JCL STREAM
/REMARK *
/REMARK *

/SYSFILE SYSLST=L.RAI.DATA
/FILE ADAvrs.MOD,LINK=DDLIB
/FILE DB.yyyyy.ASSO,LINK=DDASSOR1
/FILE DB.yyyyy.RLOGR1,LINK=DDRLOGR1
/FILE DB.yyyyy.PLOGR1,LINK=DDPLOGR1
/FILE DB.yyyyy.PLOGR2,LINK=DDPLOGR2
/FILE DB.yyyyy.JCLIN,LINK=DDJCLIN
/FILE DB.yyyyy.JCLOUT,LINK=DDJCLOUT
/FILE DB.yyyyy.JCLCON,LINK=DDJCLCON
/EXEC (ADARUN,ADAvrs.MOD)
ADARUN PROG=ADARAI,DBID=yyyyy,MODE=MULTI
ADARUN UEX2=EXITR2
ADARAI RECOVER PLOGDEV=2201,FEOFPL=YES,RELGEN=1
/LOGOFF NOSPOOL

Skeleton Job Control

For a BS2000 system, the skeleton job control should have the following characteristics:

In addition to the general JCL characteristics described above, BS2000 systems can include the following in the skeleton JCL:

These options must be specified at the beginning of the skeleton JCL, immediately before the %%JCL-JOB-HEADER statement.

Specifying Substitution Strings

Frequently occurring strings such as data set names can be defined in the substitution section. The strings are then inserted into the BS2000 JCL as well as in the user program control statements.

To use string substitution, include the following JCL statement before %%JCL-JOB-HEADER:

%%JCL-BS2-SUBSTITUTION

This statement is followed by the substitution definitions, which have the following format:

%%argname=substring

where argname is the 1- to 8-character JCL or user program control argument to be replaced, and substring is the replacement string of up to 128 characters. One substitution statement per line is allowed; the substitution statements are ended by the next %%JCL statement.

DDFILEA JCL Options

The JCL statements described in this section must appear before %%JCL-JOB-HEADER in the skeleton JCL.

ADAORD is the only utility that opens DDFILEA output data sets during the BS2000 recovery job. ADARAI assists in allocating those data sets on disk or tape regardless of whether the data sets existed at RECOVER time.

Existing tape data sets are never overwritten. To overwrite existing DDFILEA disk data sets, specify the following statement in the skeleton JCL:

%%JCL-BS2-WORK-DATASET-OVERWRITE=YES

OVERWRITE defaults to NO. If no DDFILEA assignments are found and overwriting is prohibited (the default), ADARAI tries to write the DDFILEA data sets on TAPE-C1 cartridges.

To allocate DDFILEA on disk instead of tape, include the following JCL statement:

%%JCL-BS2-WORK-DISK-SPACE

Then specify one or more disk space assignment statements, as follows:

:catid :=pam-pages

ADARAI checks the availability of the specified pubsets and for permission of the ADARAI task's logon user ID to allocate the specified number of PAM pages on those pubsets. If the checks fail, the user's logon ID must be added to the joinfile of the related pubset, and the ADARAI RECOVER job step must be repeated before starting the generated recovery job. Otherwise, the ADAORD job steps may abend.

To assign DDFILEA output tape devices and volumes, include the following statement:

%%JCL-BS2-WORK-TAPE-VOLUMES=device-type

If output tape data sets must be created, ADARAI uses temporary data sets named #ADARAI.RECOVER.TAPE.nnnnn, where nnnnn equals "00001", "00002", and so on. If the console subtask option described in the next section is enabled, each line can contain one or more volser numbers separated by blanks or commas. The first two positions on each line must be blanks; the maximum line length is 256 characters.

The following is an example:

%%JCL-BS2-WORK-TAPE-VOLUMES=TAPE-C1 
  A00001,A00002,A00003,A00004
  A00005,A00006,A00007,A00008

Up to 512 volumes can be specified.

BS2000 Console Subtask

When a recovery job created by ADARAI RECOVER is submitted, console messages may occur that require operator intervention, such as the following:

These messages can be answered automatically by a UCON program, which runs as a subtask in parallel with the recovery job. The UCON program (ADAR2C) receives all relevant console messages and sends answers whenever possible.

To run a console subtask, include the following section before %%JCL-JOB-HEADER:

%%JCL-BS2-CONSOLE-SUBTASK-SPECIFICATION
CONSOLE-NAME=name,C'password'      (this statement is required) 
DCAM-APPL=dcamappl                                   (this statement is optional)

where

name is a /LOGON userid;
password is the user ID's logon password; and
dcamappl is the name of a DCAM application (the default is "RAIRUCON").

For more information, see the Authorized User Tasks section in the BS2000 Systems Administration documentation.

The following optional statement can be included in the skeleton JCL, followed by volser definitions. If the console subtask is not called, the volser definitions have no effect.

%%JCL-BS2-WORK-TAPE-VOLUMES=device-type

Include the following statement in the JCL for the ADARAI RECOVER function ( not in the skeleton JCL):

/SET-FILE-LINK
FILE-NAME=console-job,LINK-NAME=DDJCLCON

The following example JCL for the RECOVER function includes the console subtask:

/  LOGON
/  SET-FILE-LINK  FILE-NAME=ADA.JCLIN,LINK-NAME=DDJCLIN
/  SET-FILE-LINK  FILE-NAME=ADA.JCLOUT,LINK-NAME=DDJCLOUT
/  SET-FILE-LINK  FILE-NAME=ADA.JCLCON,LINK-NAME=DDJCLCON
.
.

/  ASSIGN-SYSDTA  TO-FILE=*SYSCMD
/  SET-FILE-LINK  ADAvrs.MOD,LINK-NAME=DDLIB
/  START-PROG *M(E=ADARUN,L=ADAvrs.MOD)
ADARUN PROG=ADARAI,DB=47
ADARAI RECOVER
/  LOGOFF NOSPOOL

The console subtask evaluates the following BS2000 console messages, where tsn is the task serial number, and mn is the technical device name:

NKVT010 VOLUME volser IS MOUNTED ON DEVICE mn

If the volser and device are specified as described in the section DDFILEA JCL Options, they are registered in the subtask's online volser table. If the message NKVT013 is also outstanding at this time, the subtask returns the response "tsn.mn".

NKVT011/97 VOLUME volser IS DISMOUNTED FROM DEVICE mn...

The volser is removed from the online volser table.

NKVT013 MOUNT TAPE '*SCRAT' ON DEVICE ...

If this message is related to the RECOVER task and the volser is available in the online volser table, the subtask sends the response "tsn.mn".

DMS0DFB ACKNOWLEDGE VSN volser ON DEVICE mn...

If this message is related to the RECOVER task, the subtask sends the response "tsn".

DMS0DA5 INVALID FILE SPECIFICATION: VSN volser FOR FILE file...

If the related "tsn" is the RECOVER task's "tsn" and file is a temporary data set with the name #ADARAI.RECOVER.TAPE.nnnnn, the message is answered with the response "tsn.I".

For the subtask to respond, the logon ID must be able to ignore tapes with incorrect file IDs. To enable this, issue the following statement under the system administrator's logon ID (TSOS):

/MOD-USER userid,PROTECTION-ATTRIBUTE=(TAPE-ACCESS=READ)

Skeleton Job Control Example (BS2000)

%%JCL-BS2-WORK-DATASET-OVERWRITE = NO
%%JCL-BS2-WORK-DISK-SPACE
      :A: = 500000
      :B: = 1000000
%%JCL-BS2-CONSOLE-SUBTASK-SPECIFICATION
  CONSOLE-NAME=CON1,C'PASSWORD'
%%JCL-BS2-WORK-TAPE-VOLUMES=TAPE-C1
   A00001,A00002,A00003,A00004,A00005
   A00006,A00007,A00008,A00009,A00010
%%JCL-BS2-SUBSTITUTION
  %%USERID = ADAvrs
  %%AC  %%ASSOR1 = $ADAvrs.DByyyyy.ASSOR1
  %%ASSOR2 = $ADAvrs.DByyyyy.ASSOR2
  %%DATAR1 = $ADAvrs.DByyyyy.DATAR1
  %%DATAR2 = $ADAvrs.DByyyyy.DATAR2
  %%WORK   = $ADAvrs.DByyyyy.WORK
  %%SORT   = $ADAvrs.DByyyyy.SORT%
  %%TEMP   = $ADAvrs.DByyyyy.TEMP
  %%RLOGR1 = $ADAvrs.DByyyyy.RLOGR1
  %%PLOGR1 = $ADAvrs.DByyyyy.PLOGR1
  %%PLOGR2 = $ADAvrs.DByyyyy.PLOGR2
  %%DBID   = yyyyy
  %%IDTNAME = ADABASvB
  %%USEREX  = ADAvrs.USEREXITS.MOD
  %%DDLIB   = ADAvrs.MOD
  %%DEVICE  = dddd
%%JCL-JOB-HEADER
  /.RECOVER LOGON %%USERID,%%ACCOUNT
  /       SET-FILE-LINK FILE-NAME=%%USEREX,LINK-NAME=BLSLIB01
  /       SET-FILE-LINK FILE-NAME=%%DDLIB,LINK-NAME=DDLIB
  /       ASSIGN-SYSOUT TO-FILE=$ADAvrs.RAI.OUT
  /       ASSIGN-SYSLST TO-FILE=$ADAvrs.RAI.LST%%JCL-JOB-TRAILER
  /REMARK -----------------------------------------------------------*
  /REMARK *          RECOVERY JOB SUCCESSFULLY TERMINATED            *
  /REMARK -----------------------------------------------------------*
  /LOGOFF NOSPOOL
  /.JOBERROR REMARK
  /REMARK +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
  /REMARK *          RECOVERY JOB TERMINATED WITH ERROR              *
  /REMARK +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
  /LOGOFF NOSPOOL
%%JCL-ADARES
  /REMARK
  /REMARK REGENERATE/ BACKOUT
  /REMARK
  /       SET-FILE-LINK FILE-NAME=%%RLOGR1,LINK-NAME=DDRLOGR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%ASSOR1,LINK-NAME=DDASSOR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%ASSOR2,LINK-NAME=DDASSOR2,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%DATAR1,LINK-NAME=DDDATAR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%DATAR2,LINK-NAME=DDDATAR2,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%WORK,LINK-NAME=DDWORKR1,         -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=RAI.DRU.JCLO.ADARES,LINK-NAME=DDDRUCK
  /       SET-FILE-LINK FILE-NAME=RAI.PRI.JCLO.ADARES,LINK-NAME=DDPRINT
  %SEQUENTIAL
  /       ASSIGN-SYSDTA TO-FILE=*SYSCMD
  /       START-PROGRAM
FROM-FILE=*MODULE(ELEMENT=ADARUN,LIBRARY=%%DDLIB)
  ADARUN MODE=MULTI,PROG=ADARES
  ADARUN DBID=%%DBID,DE=%%DEVICE,IDTNAME=%%IDTNAME
  %KARTE
%%JCL-STEP-TRAILER
  /SET-JOB-STEP%%JCL-ADASAV
  /REMARK
  /REMARK RESTORE FILE(S)/DATABASE
  /REMARK
  /.%STEP REMARK
  /       SET-FILE-LINK FILE-NAME=%%RLOGR1,LINK-NAME=DDRLOGR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%ASSOR1,LINK-NAME=DDASSOR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%ASSOR2,LINK-NAME=DDASSOR2,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%DATAR1,LINK-NAME=DDDATAR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%DATAR2,LINK-NAME=DDDATAR2,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%WORK,LINK-NAME=DDWORKR1,         -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK
FILE-NAME=RAI.DRU.JCLO.RESTORE,LINK-NAME=DDDRUCK
  /       SET-FILE-LINK
FILE-NAME=RAI.PRI.JCLO.RESTORE,LINK-NAME=DDPRINT
  %SEQUENTIAL
  /       ASSIGN-SYSDTA TO-FILE=*SYSCMD
  /       START-PROGRAM
FROM-FILE=*MODULE(ELEMENT=ADARUN,LIBRARY=%%DDLIB)
  ADARUN MODE=MULTI,PROG=ADASAV
  ADARUN DBID=%%DBID,DE=%%DEVICE,IDTNAME=%%IDTNAME
  %KARTE
%%JCL-ENDNUC
  /REMARK
  /REMARK ADADBS END NUCLEUS

/REMARK
  /       SET-FILE-LINK FILE-NAME=%%RLOGR1,LINK-NAME=DDRLOGR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%ASSOR1,LINK-NAME=DDASSOR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%ASSOR2,LINK-NAME=DDASSOR2,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%DATAR1,LINK-NAME=DDDATAR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%DATAR2,LINK-NAME=DDDATAR2,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%WORK,LINK-NAME=DDWORKR1,         -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%SORT,LINK-NAME=DDSORTR1
  /       SET-FILE-LINK FILE-NAME=%%TEMP,LINK-NAME=DDTEMPR1
  /       SET-FILE-LINK FILE-NAME=RAI.DRU.JCLO.ADADBS,LINK-NAME=DDDRUCK
  /       SET-FILE-LINK FILE-NAME=RAI.PRI.JCLO.ADADBS,LINK-NAME=DDPRINT
  /       ASSIGN-SYSDTA TO-FILE=*SYSCMD
  /       START-PROGRAM
FROM-FILE=*MODULE(ELEMENT=ADARUN,LIBRARY=%%DDLIB)
  ADARUN MODE=MULTI,PROG=ADADBS
  ADARUN DBID=%%DBID,DE=%%DEVICE,IDTNAME=%%IDTNAME
  ADADBS OPERCOM ADAEND
  /REMARK
  /REMARK CHECK INACTIVE DATABASE
  /REMARK
  /       SET-FILE-LINK FILE-NAME=RAI.DRU.JCLO.ADARAI,LINK-NAME=DDDRUCK
  /       SET-FILE-LINK FILE-NAME=RAI.PRI.JCLO.ADARAI,LINK-NAME=DDPRINT
  /       ASSIGN-SYSDTA TO-FILE=*SYSCMD
  /       START-PROGRAM
FROM-FILE=*MODULE(ELEMENT=ADARUN,LIBRARY=%%DDLIB)
  ADARUN
MODE=MULTI,PROG=ADARAI,DBID=%%DBID,DE=%%DEVICE,IDTNAME=%%IDTNAME
  ADARAI CHKDB INACTIVE
%%JCL-ADADEF
  /REMARK
  /REMARK DEFINE NEWWORK
  /REMARK
  /       SET-FILE-LINK FILE-NAME=%%RLOGR1,LINK-NAME=DDRLOGR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%ASSOR1,LINK-NAME=DDASSOR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%ASSOR2,LINK-NAME=DDASSOR2,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%DATAR1,LINK-NAME=DDDATAR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%DATAR2,LINK-NAME=DDDATAR2,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%WORK,LINK-NAME=DDWORKR1,         -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%SORT,LINK-NAME=DDSORTR1
  /       SET-FILE-LINK FILE-NAME=%%TEMP,LINK-NAME=DDTEMPR1
  /       SET-FILE-LINK FILE-NAME=RAI.DRU.JCLO.ADADEF,LINK-NAME=DDDRUCK
  /       SET-FILE-LINK FILE-NAME=RAI.PRI.JCLO.ADADEF,LINK-NAME=DDPRINT
  /       ASSIGN-SYSDTA TO-FILE=*SYSCMD
  /       START-PROGRAM
FROM-FILE=*MODULE(ELEMENT=ADARUN,LIBRARY=%%DDLIB)
  ADARUN MODE=MULTI,PROG=ADADEF
  ADARUN DBID=%%DBID,DE=%%DEVICE,IDTNAME=%%IDTNAME
  %KARTE
%%JCL-ADALOD
  /REMARK
  /REMARK LOAD A FILE/ MASS UPDATE
  /REMARK
  /       SET-FILE-LINK FILE-NAME=%%RLOGR1,LINK-NAME=DDRLOGR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%ASSOR1,LINK-NAME=DDASSOR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%ASSOR2,LINK-NAME=DDASSOR2,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%DATAR1,LINK-NAME=DDDATAR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%DATAR2,LINK-NAME=DDDATAR2,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%WORK,LINK-NAME=DDWORKR1,         -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%SORT,LINK-NAME=DDSORTR1
  /       SET-FILE-LINK FILE-NAME=%%TEMP,LINK-NAME=DDTEMPR1
  /       SET-FILE-LINK FILE-NAME=RAI.DRU.JCLO.ADALOD,LINK-NAME=DDDRUCK
  /       SET-FILE-LINK FILE-NAME=RAI.PRI.JCLO.ADALOD,LINK-NAME=DDPRINT
  %SEQUENTIAL
  /       ASSIGN-SYSDTA TO-FILE=*SYSCMD
  /       START-PROGRAM
FROM-FILE=*MODULE(ELEMENT=ADARUN,LIBRARY=%%DDLIB)
  ADARUN MODE=MULTI,PROG=ADALOD
  ADARUN DBID=%%DBID,DE=%%DEVICE,IDTNAME=%%IDTNAME
  %KARTE
%%JCL-ADAORD
  /REMARK
  /REMARK REORDER
  /REMARK
  /       SET-FILE-LINK FILE-NAME=%%RLOGR1,LINK-NAME=DDRLOGR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%ASSOR1,LINK-NAME=DDASSOR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%ASSOR2,LINK-NAME=DDASSOR2,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%DATAR1,LINK-NAME=DDDATAR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%DATAR2,LINK-NAME=DDDATAR2,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%WORK,LINK-NAME=DDWORKR1,         -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%SORT,LINK-NAME=DDSORTR1
  /       SET-FILE-LINK FILE-NAME=%%TEMP,LINK-NAME=DDTEMPR1
  /       SET-FILE-LINK FILE-NAME=RAI.DRU.JCLO.ADAORD,LINK-NAME=DDDRUCK
  /       SET-FILE-LINK FILE-NAME=RAI.PRI.JCLO.ADAORD,LINK-NAME=DDPRINT
  %SEQUENTIAL
  /       ASSIGN-SYSDTA TO-FILE=*SYSCMD
  /       START-PROGRAM
FROM-FILE=*MODULE(ELEMENT=ADARUN,LIBRARY=%%DDLIB)
  ADARUN MODE=MULTI,PROG=ADAORD
  ADARUN DBID=%%DBID,DE=%%DEVICE,IDTNAME=%%IDTNAME
  %KARTE
%%JCL-ADAINV
  /REMARK
  /REMARK INVERT/ COUPLE
  /REMARK
  /       SET-FILE-LINK FILE-NAME=%%RLOGR1,LINK-NAME=DDRLOGR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%ASSOR1,LINK-NAME=DDASSOR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%ASSOR2,LINK-NAME=DDASSOR2,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%DATAR1,LINK-NAME=DDDATAR1,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%DATAR2,LINK-NAME=DDDATAR2,       -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%WORK,LINK-NAME=DDWORKR1,         -
  /                     SUP=DISK(SHARE-UPD=YES)
  /       SET-FILE-LINK FILE-NAME=%%SORT,LINK-NAME=DDSORTR1
  /       SET-FILE-LINK FILE-NAME=%%TEMP,LINK-NAME=DDTEMPR1
  /       SET-FILE-LINK FILE-NAME=RAI.DRU.JCLO.ADADBS,LINK-NAME=DDDRUCK
  /       SET-FILE-LINK FILE-NAME=RAI.PRI.JCLO.ADADBS,LINK-NAME=DDPRINT
  /       ASSIGN-SYSDTA TO-FILE=*SYSCMD
  /       START-PROGRAM
FROM-FILE=*MODULE(ELEMENT=ADARUN,LIBRARY=%%DDLIB)
  ADARUN MODE=MULTI,PROG=ADAINV
  ADARUN DBID=%%DBID,DE=%%DEVICE,IDTNAME=%%IDTNAME
  %KARTE
%%JCL-STARTNUC
  /REMARK
  /REMARK START NUCLEUS
  /REMARK
  /       MODIFY-JOB-SWITCHES ON=(4,5)
  /       ASSIGN-SYSDTA TO-FILE=*SYSCMD
  /       START-PROGRAM FROM-FILE=EDT
  :/.ADANUC LOGON %%USERID,%%ACCOUNT
  :/    SET-FILE-LINK FILE-NAME=%%RLOGR1,LINK-NAME=DDRLOGR1,-
  :/                  SUP=DISK(SHARE-UPD=YES)
  :/    SET-FILE-LINK FILE-NAME=%%PLOGR1,LINK-NAME=DDPLOGR1,-
  :/                  SUP=DISK(SHARE-UPD=YES)
  :/    SET-FILE-LINK FILE-NAME=%%PLOGR2,LINK-NAME=DDPLOGR2,-
  :/                  SUP=DISK(SHARE-UPD=YES)
  :/    SET-FILE-LINK FILE-NAME=%%ASSOR1,LINK-NAME=DDASSOR1,-
  :/                  SUP=DISK(SHARE-UPD=YES)
  :/    SET-FILE-LINK FILE-NAME=%%ASSOR2,LINK-NAME=DDASSOR2,-
  :/                  SUP=DISK(SHARE-UPD=YES)
  :/    SET-FILE-LINK FILE-NAME=%%DATAR1,LINK-NAME=DDDATAR1,-
  :/                  SUP=DISK(SHARE-UPD=YES)
  :/    SET-FILE-LINK FILE-NAME=%%DATAR2,LINK-NAME=DDDATAR2,-
  :/                  SUP=DISK(SHARE-UPD=YES)
  :/    SET-FILE-LINK FILE-NAME=%%WORK,LINK-NAME=DDWORKR1,-
  :/                  SUP=DISK(SHARE-UPD=YES)
  :/    SET-FILE-LINK FILE-NAME=RAI.DRU.JCLO.ADANUC,LINK-NAME=DDDRUCK
  :/    SET-FILE-LINK FILE-NAME=RAI.PRI.JCLO.ADANUC,LINK-NAME=DDPRINT
  :/    ASSIGN-SYSDTA TO-FILE=*SYSCMD
  :/    SET-FILE-LINK FILE-NAME=%USEREX,LINK-NAME=BLSLIB01
  :/    SET-FILE-LINK FILE-NAME=%%DDLIB,LINK-NAME=DDLIB
  :/    START-PROGRAM FROM-FILE=*MODULE(ELEMENT=ADARUN,LIBRARY=%%DDLIB)
  :ADARUN PROG=ADANUC
  :ADARUN DATABASE=%%DBID           DATA BASE ID
  :ADARUN IDTNAME=%%IDTNAME                NAME OF IDT
  :ADARUN DEVICE=%%DEVICE
  :ADARUN IDTNAME=%%IDTNAME
  :ADARUN LFIOP=1000000,LWP=800000,LBP=4000000,LU=64000
  :ADARUN LP=200,LS=20000,TT=900,TNAE=900,OPENRQ=NO,PLOGRQ=YES
  :ADARUN NAB=20,NH=400,NU=200,NISNHQ=50,NC=20,NPLOG=2,PLOGDEV=2000
  :ADARUN PLOGSIZE=1000,NCLOG=2,CLOGDEV=2000,CLOGSIZE=500
  :ADARUN UEX2=USEREX2
  :/LOGOFF SYSOUT=DEL
  @D &:1-1:
  @W '#NUCENT' O
  @H
  /STEP
  /ENTER-JOB #NUCENT,PROC-ADMIS=PAR(USER-ID=%%USERID,                 -
  /                                 ACCOUNT=%%ACCOUNT)
  /STEP
  /       SET-FILE-LINK FILE-NAME= %%DDLIB,LINK-NAME=DDLIB
  /       SET-FILE-LINK FILE-NAME=RAI.DRU.JCLO.ADARES,LINK-NAME=DDDRUCK
  /       SET-FILE-LINK FILE-NAME=RAI.PRI.JCLO.ADARES,LINK-NAME=DDPRINT
  /       ASSIGN-SYSDTA TO-FILE=*SYSCMD
  /       START-PROGRAM
FROM-FILE=*MODULE(ELEMENT=ADARUN,LIBRARY=%%DDLIB)
  ADARUN MODE=MULTI,PROG=ADARAI
  ADARUN DBID=%%DBID,DE=%%DEVICE,IDTNAME=%%IDTNAME
  ADARAI CHKDB ACTIVE

ADAR2E Utility

If a pubset member is lost because of, for example, a head crash or other unrecoverable hardware error, initialize a new member, include it in the pubset, and restore all data sets in the pubset. In most cases, you must also reallocate the ASSO, DATA, WORK, and PLOG data sets on exactly the same disk locations they were on before the hardware failure.

The ADAR2E utility reads the TSOSCAT entries of assigned data sets and creates a procedure that reallocates the Adabas files at exactly the same disk locations where they were before. The ADAR2E utility operates totally independently of ADARAI and other Adabas utilities; ADAR2E should be run whenever disk allocation changes are made to the major Adabas components (ASSO, DATA, WORK, PLOG, CLOG, TEMP, or SORT).

The following example JCL is for running the ADAR2E utility:

/  LOGON
/  SET-FILE-LINK FILE-NAME=DB.yyyyy.ASSO-01,LINK-NAME=DDASSOR1
/  SET-FILE-LINK FILE-NAME=DB.yyyyy.DATA-01,LINK-NAME=DDDATAR1
/  SET-FILE-LINK FILE-NAME=DB.yyyyy.WORK-01,LINK-NAME=DDWORKR1
/  SET-FILE-LINK FILE-NAME=DB.yyyyy.TEMP-01,LINK-NAME=DDTEMPR1
/  SET-FILE-LINK FILE-NAME=DB.yyyyy.PLOGR1,LINK-NAME=DDPLOGR1
/  SET-FILE-LINK FILE-NAME=DB.yyyyy.PLOGR2,LINK-NAME=DDPLOGR2
/  SET-FILE-LINK FILE-NAME=ALLOCATE.JOB,LINK-NAME=DDJCLOUT
/  START-PROGRAM *MOD(LIB=ADAvrs,ELEM=ADAR2E)
/  LOGOFF SYS-OUTPUT=DEL 

The following is a list of available link names:

DDASSOR1,DDASSOR2,DDASSOR3,DDASSOR4,DDASSOR5
DDDATAR1,DDDATAR2,DDDATAR3,DDDATAR4,DDDATAR5
DDWORKR1,DDWORKR2
DDSORTR1,DDSORTR2
DDTEMPR1,DDTEMPR2
DDPLOGR1,DDPLOGR2,DDPLOGR3,DDPLOGR4,DDPLOGR5,DDPLOGR6,DDPLOGR7,DDPLOGR8

The following is an example of the job control created by the ADAR2E utility:

/  BEGIN-PROCEDURE
/  MODIFY-SDF-OPTIONS CONTINUATION=NEW-MODE
/  CREATE-FILE FILE-NAME=:A:$ADABAS.DB.yyyyy.ASSO-01,-
/       SUPPORT=PUBLIC-DISK(VOLUME=PUBA00,-
/       DEVICE-TYPE=Ddddd,SPACE=ABSOLUTE-
/       (FIRST-PAGE=32833,SIZE=5001))
/  MODI-FILE-ATTR FILE-NAME=:A:$ADABAS.DB.yyyyy.ASSO-01,-
/       SUPPORT=PUBLIC-DISK(VOLUME=PUBA00,-
/       DEVICE-TYPE=Ddddd,SPACE=ABSOLUTE-
/       (FIRST-PAGE=29761,SIZE=5001))
        .
        .
/  CREATE-FILE FILE-NAME=:A:$ADABAS.DB.yyyyy.DATA-01,-
/       SUPPORT=PUBLIC-DISK(VOLUME=PUBA02,-
/       DEVICE-TYPE=Ddddd,SPACE=ABSOLUTE-
/       (FIRST-PAGE=119809,SIZE=8001))
/  MODI-FILE-ATTR FILE-NAME=:A:$ADABAS.DB.yyyyy.DATA-01,-
/       SUPPORT=PUBLIC-DISK(VOLUME=PUBA03,-
/       DEVICE-TYPE=Ddddd,SPACE=ABSOLUTE-
/       (FIRST-PAGE=75841,SIZE=8001)) 

Execute the ADAR2E-generated reallocation procedure under the system administrator's logon ID (TSOS) before starting the ADARAI RECOVER function.

Under BS2000 version 11 and above, it is possible to allow all users with access rights to a certain pubset to allocate disk space absolutely by issuing the following command under TSOS:

/MODIFY-MASTER-CATALOG CATID= catid,PHYSICAL-ALLO=USER-ALLOWED

Top of page

z/OS

Data Set DD Name Storage More Information
Associator DDASSORn disk  
Data protection log DDPLOGRn tape/ disk Required for RECOVER only if FEOFPL=YES is specified.
Recovery log (RLOG) DDRLOGR1 disk  
Job stream input DDJCLIN disk Required only for RECOVER
Recovery job output DDJCLOUT disk Required only for RECOVER
ADARAI messages DDDRUCK printer Messages and Codes
ADARUN messages DDPRINT printer Messages and Codes
ADARUN parameters DDCARD reader Operations
ADARAI parameters DDKARTE reader  

JCL Examples (z/OS)

Prepare for Recovery Logging (ADARAI PREPARE):

//RAIPREP   EXEC PGM=ADARUN
//STEPLIB   DD   DISP=SHR,DSN=ADABAS.ADAvrs.LOADLIB
//DDASSOR1  DD   DISP=SHR,DSN=EXAMPLE.ADAyyyyy.ASSOR1
//DDRLOGR1  DD   DISP=SHR,DSN=EXAMPLE.ADAyyyyy.RLOGR1
//DDDRUCK   DD   SYSOUT=A
//DDPRINT   DD   SYSOUT=A
//DDCARD    DD   *
ADARUN PROGRAM=ADARAI,SVC=xxx,DEVICE=dddd,DBID=yyyyy,MODE=MULTI
//DDKARTE   DD   *
ADARAI PREPARE RLOGSIZE=5,MINGENS=5

List the RLOG (ADARAI LIST)

//RAILIST  EXEC   PGM=ADARUN
//STEPLIB  DD DSN=ADABAS.ADAvrs.LOADLIB,DISP=SHR
//DDASSOR1 DD DSN=EXAMPLE.ADAyyyyy.ASSOR1,DISP=SHR
//DDRLOGR1 DD DSN=EXAMPLE.ADAyyyyy.RLOGR1,DISP=SHR
//DDDRUCK  DD      SYSOUT=A
//DDPRINT  DD      SYSOUT=A
//DDCARD   DD      *
ADARUN PROGRAM=ADARAI,SVC=xxx,DEVICE=dddd,DBID=yyyyy,MODE=MULTI
//DDKARTE  DD      *
ADARAI LIST
/*

Create Recovery JCL (ADARAI RECOVER)

//ADARAI   EXEC   PGM=ADARUN
//STEPLIB  DD DSN=ADABAS.ADAvrs.LOADLIB,DISP=SHR
//*
//DDASSOR1 DD DSN=EXAMPLE.ADAyyyyy.ASSOR1,DISP=SHR
//*
//DDRLOGR1 DD DSN=EXAMPLE.ADAyyyyy.RLOGR1,DISP=SHR
//DDJCLIN  DD DSN=EXAMPLE.ADAyyyyy.RAIJCL(JCLIN),DISP=SHR
//DDJCLOUT DD      SYSOUT=A
//*
//DDPLOGR1 DD DSN=EXAMPLE.ADAyyyyy.PLOGR1,DISP=SHR
//DDPLOGR2 DD DSN=EXAMPLE.ADAyyyyy.PLOGR2,DISP=SHR
//*
//DDDRUCK  DD      SYSOUT=A
//DDPRINT  DD      SYSOUT=A
//DDCARD   DD      *
ADARUN PROGRAM=ADARAI,SVC=xxx,DEVICE=dddd,DBID=yyyyy,MODE=MULTI
ADARUN UEX2=UEX2
//DDKARTE  DD      *
ADARAI RECOVER JCLLOG=YES,RELGEN=0,DRIVES=2

Skeleton Job Control Example (z/OS)

This example can be found in member ADARAIIN of the JOBS data set.

%%JCL-JOB-HEADER                                                     
  //ADARECOV JOB 5,'ADA-USER',MSGCLASS=X,CLASS=A,REGION=4096K        
  //*                                                                
  //JOBLIB DD DSN=ADABAS.ADAvrs.LOAD,DISP=SHR                 
  //*                                                       
%%JCL-JOB-TRAILER                                           
  //*                                                       
  //* END OF RECOVERY                                       
  //*                                                       
  //                                                        
%%JCL-STEP-TRAILER                                          
  //*                                                       
  //* END OF STEP                                           
  //*                                                       
%%JCL-DDKARTE                                               
  //DDKARTE  DD  *                                          
%%JCL-ADADEF                                                
  //*                                                       
  //* DEFINE NEWWORK                                        
  //*                                                       
  //%STEP   EXEC PGM=ADARUN          ADADEF JOB STEP        
  //DDASSOR1 DD  DSN=ADABAS.ADAvrs.ASSOR1,DISP=SHR            
  //DDDATAR1 DD  DSN=ADABAS.ADAvrs.DATAR1,DISP=SHR                      
  //DDWORKR1 DD  DSN=ADABAS.ADAvrs.WORKR1,DISP=SHR                      
  //DDTEMPR1 DD  DSN=ADABAS.ADAvrs.TEMPR1,DISP=OLD                      
  //DDSORTR1 DD  DSN=ADABAS.ADAvrs.SORTR1,DISP=OLD                      
  //DDRLOGR1 DD  DSN=ADABAS.ADAvrs.RLOGR1,DISP=SHR                      
  //SYSUDUMP DD  SYSOUT=*                                             
  //DDDRUCK  DD  SYSOUT=*                                             
  //DDPRINT  DD  SYSOUT=*                                             
  //DDCARD   DD  *                                                    
  ADARUN MODE=MULTI,PROG=ADADEF,DBID=xxxxx,DE=yyyy,SVC=zzz            
  //DDKARTE  DD  *                                                    
  %KARTE                                                              
%%JCL-ADAINV                                                          
  //*                                                                 
  //* INVERT / COUPLE                                                 
  //*                                                                 
  //%STEP   EXEC PGM=ADARUN          ADAINV JOB STEP                  
  //DDASSOR1 DD  DSN=ADABAS.ADAvrs.ASSOR1,DISP=SHR                      
  //DDRLOGR1 DD  DSN=ADABAS.ADAvrs.RLOGR1,DISP=SHR                      
  //DDSORTR1 DD  DSN=ADABAS.ADAvrs.SORTR1,DISP=OLD                 
  //DDTEMPR1 DD  DSN=ADABAS.ADAvrs.TEMPR1,DISP=OLD                 
  //SYSUDUMP DD  SYSOUT=*                                        
  //DDDRUCK  DD  SYSOUT=*                                        
  //DDPRINT  DD  SYSOUT=*                                        
  //DDCARD   DD  *                                               
  ADARUN MODE=MULTI,PROG=ADAINV,DBID=xxxxx,DE=yyyy,SVC=zzz       
  //DDKARTE  DD  *                                               
  %KARTE                                                         
%%JCL-ADALOD                                                     
  //*                                                            
  //* LOAD A FILE / MASS UPDATE                                  
  //*                                                            
  //%STEP   EXEC PGM=ADARUN          ADALOD JOB STEP             
  %SEQUENTIAL                                                    
  //DDASSOR1 DD  DSN=ADABAS.ADAvrs.ASSOR1,DISP=SHR                 
  //DDDATAR1 DD  DSN=ADABAS.ADAvrs.DATAR1,DISP=SHR                 
  //DDWORKR1 DD  DSN=ADABAS.ADAvrs.WORKR1,DISP=SHR                 
  //DDTEMPR1 DD  DSN=ADABAS.ADAvrs.TEMPR1,DISP=OLD                 
  //DDSORTR1 DD  DSN=ADABAS.ADAvrs.SORTR1,DISP=OLD                
  //DDRLOGR1 DD  DSN=ADABAS.ADAvrs.RLOGR1,DISP=SHR                
  //SYSUDUMP DD  SYSOUT=*                                       
  //DDDRUCK  DD  SYSOUT=*                                       
  //DDPRINT  DD  SYSOUT=*                                       
  //DDCARD   DD  *                                              
  ADARUN MODE=MULTI,PROG=ADALOD,DBID=xxxxx,DE=yyyy,SVC=zzz      
  //DDKARTE  DD  *                                              
  %KARTE                                                        
%%JCL-ADAORD                                                    
  //*                                                           
  //* REORDER                                                   
  //*                                                           
  //%STEP   EXEC PGM=ADARUN          ADAORD JOB STEP            
  %SEQUENTIAL                                                   
  //DDASSOR1 DD  DSN=ADABAS.ADAvrs.ASSOR1,DISP=SHR                
  //DDDATAR1 DD  DSN=ADABAS.ADAvrs.DATAR1,DISP=SHR                
  //DDWORKR1 DD  DSN=ADABAS.ADAvrs.WORKR1,DISP=SHR                
  //DDRLOGR1 DD  DSN=ADABAS.ADAvrs.RLOGR1,DISP=SHR                
  //SYSUDUMP DD  SYSOUT=*                                                   
  //DDDRUCK  DD  SYSOUT=*                                                   
  //DDPRINT  DD  SYSOUT=*                                                   
  //DDCARD   DD  *                                                          
  ADARUN MODE=MULTI,PROG=ADAORD,DBID=xxxxx,DE=yyyy,SVC=zzz                  
  //DDKARTE  DD  *                                                          
  %KARTE                                                                    
%%JCL-ADARES                                                                
  //*                                                                       
  //* PLCOPY / REGENERATE / BACKOUT                                         
  //*                                                                       
  //%STEP   EXEC PGM=ADARUN                                                 
  %SEQUENTIAL                                                               
  //DDASSOR1 DD  DSN=ADABAS.ADAvrs.ASSOR1,DISP=SHR                            
  //DDRLOGR1 DD  DSN=ADABAS.ADAvrs.RLOGR1,DISP=SHR                            
  //*  Omit DDPLOGRx for Parallel and Cluster Services                      
  //DDPLOGR1 DD  DSN=ADABAS.ADAvrs.PLOGR1,DISP=SHR                            
  //DDPLOGR2 DD  DSN=ADABAS.ADAvrs.PLOGR2,DISP=SHR                            
  //*  Include MERGIN1 and MERGIN2 for Parallel and Cluster Services        
  //MERGIN1 DD  DSN=ADABAS.ADAvrs.INTERI,DISP=SHR                         
  //MERGIN2 DD  DSN=ADABAS.ADAvrs.INTERO,DISP=SHR                         
  //SYSUDUMP DD  SYSOUT=*                                               
  //DDDRUCK  DD  SYSOUT=*                                               
  //DDPRINT  DD  SYSOUT=*                                               
  //DDCARD   DD  *                                                      
  ADARUN MODE=MULTI,PROG=ADARES,DBID=xxxxx,DE=yyyy,SVC=zzz              
  //DDKARTE  DD  *                                                      
  %KARTE                                                                
%%JCL-DDSIAUS1                                                          
  //DDSIAUS1 DD  DSN=ADABAS.ADAvrs.PLCOPY(+1),                            
  //             DISP=(NEW,CATLG),UNIT=TAPE                             
%%JCL-DDSIAUS2                                                          
  //DDSIAUS2 DD  DSN=ADABAS.ADAvrs.PLCOPY2(+1),     Optional second copy  
  //             DISP=(NEW,CATLG),UNIT=TAPE                             
%%JCL-ADASAV                                                            
  //*                                                                   
  //* RESTORE FILE(S)/DATABASE                                          
  //*                                                                   
  //%STEP   EXEC PGM=ADARUN          ADASAV JOB STEP           
  %SEQUENTIAL                                                  
  //DDRLOGR1 DD  DSN=ADABAS.ADAvrs.RLOGR1,DISP=SHR               
  //DDASSOR1 DD  DSN=ADABAS.ADAvrs.ASSOR1,DISP=SHR               
  //DDDATAR1 DD  DSN=ADABAS.ADAvrs.DATAR1,DISP=SHR               
  //DDWORKR1 DD  DSN=ADABAS.ADAvrs.WORKR1,DISP=SHR               
  //DDTEMPR1 DD  DSN=ADABAS.ADAvrs.TEMPR1,DISP=OLD               
  //SYSUDUMP DD  SYSOUT=*                                      
  //DDDRUCK  DD  SYSOUT=*                                      
  //DDPRINT  DD  SYSOUT=*                                      
  //DDCARD   DD  *                                             
  ADARUN MODE=MULTI,PROG=ADASAV,DBID=xxxxx,DE=yyyy,SVC=zzz     
  //DDKARTE  DD  *                                             
  %KARTE                                                       
%%JCL-STARTNUC                                                 
  //*                                                          
  //* START NUCLEUS                                            
  //*                                                          
  //%STEP   EXEC PGM=IEBGENER                                  
  //SYSPRINT DD  SYSOUT=*                                            
  //SYSIN    DD  DUMMY                                               
  //SYSUT2   DD  SYSOUT=(*,INTRDR)                                   
  //SYSUT1   DD  DATA,DLM='$$'                                       
  //ADANUC   JOB 5,'ADANUC',CLASS=A,MSGCLASS=X,REGION=6M,TIME=1440   
  //NUCxxxx EXEC PGM=ADARUN                                          
  //STEPLIB  DD  DSN=ADABAS.ADAvrs.LOAD,DISP=SHR                       
  //*                                                                
  //DDASSOR1 DD  DSN=ADABAS.ADAvrs.ASSOR1,DISP=SHR                     
  //DDDATAR1 DD  DSN=ADABAS.ADAvrs.DATAR1,DISP=SHR                     
  //DDWORKR1 DD  DSN=ADABAS.ADAvrs.WORKR1,DISP=SHR                     
  //DDRLOGR1 DD  DSN=ADABAS.ADAvrs.RLOGR1,DISP=SHR                     
  //DDPLOGR1 DD  DSN=ADABAS.ADAvrs.PLOGR1,DISP=SHR                     
  //DDPLOGR2 DD  DSN=ADABAS.ADAvrs.PLOGR2,DISP=SHR                     
  //INTRDR2  DD  SYSOUT=(*,INTRDR)                                   
  //SYSUDUMP DD  SYSOUT=*                                            
  //DDPRINT  DD  SYSOUT=*                                            
  //DDCARD   DD  *                                                   
  ADARUN PROG=ADANUC                                                 
  ADARUN UEX2=UEX2                                                            
  ADARUN DUALPLS=nnn            dual PLOG size                                
  ADARUN DUALPLD=mmmm           dual PLOG device type                         
  ADARUN MODE=MULTI                                                           
  ADARUN DATABASE=xxxxx         DATA BASE ID                                  
  ADARUN DEVICE=yyyy            ASSOCIATOR DEVICE TYPE                        
  ADARUN SVC=zzz                SVC NUMBER                                    
  $$                                                                          
  //*                                                                         
  //* End of input for internal reader. Check whether nucleus is active.      
  //*                                                                         
  //ADARAI  EXEC PGM=ADARUN                                                   
  //STEPLIB  DD  DSN=ADABAS.ADAvrs.LOAD,DISP=SHR                                
  //SYSOUT   DD  SYSOUT=*                                                     
  //DDPRINT  DD  SYSOUT=*                                                     
  //DDDRUCK  DD  SYSOUT=*                                                     
  //DDCARD   DD  *                                                            
  ADARUN MODE=MULTI,PROGRAM=ADARAI,DBID=xxxxx,SVC=zzz,DE=yyyy                 
  //DDKARTE  DD  *                                                            
  ADARAI CHKDB ACTIVE                                        
  //*                                                        
%%JCL-ENDNUC                                                 
  //*                                                        
  //* ADADBS END NUCLEUS                                     
  //*                                                        
  //%STEP   EXEC PGM=ADARUN                                  
  //DDASSOR1 DD  DSN=ADABAS.ADAvrs.ASSOR1,DISP=SHR             
  //DDDATAR1 DD  DSN=ADABAS.ADAvrs.DATAR1,DISP=SHR             
  //DDWORKR1 DD  DSN=ADABAS.ADAvrs.WORKR1,DISP=SHR             
  //DDTEMPR1 DD  DSN=ADABAS.ADAvrs.TEMPR1,DISP=OLD             
  //DDSORTR1 DD  DSN=ADABAS.ADAvrs.SORTR1,DISP=OLD             
  //DDRLOGR1 DD  DSN=ADABAS.ADAvrs.RLOGR1,DISP=SHR             
  //DDDRUCK  DD  SYSOUT=*                                    
  //DDPRINT  DD  SYSOUT=*                                    
  //DDCARD   DD  *                                           
  ADARUN MODE=MULTI,PROG=ADADBS,DBID=xxxxx,DE=yyyy,SVC=zzz   
  //DDKARTE  DD  *                                           
  ADADBS OPERCOM ADAEND                                      
 //*                                                              
 //* Check whether nucleus is inactive.                           
 //*                                                              
 //ADARAI  EXEC PGM=ADARUN                                        
 //STEPLIB  DD  DSN=ADABAS.ADAvrs.LOAD,DISP=SHR                     
 //SYSOUT   DD  SYSOUT=*                                          
 //DDPRINT  DD  SYSOUT=*                                          
 //DDDRUCK  DD  SYSOUT=*                                          
 //DDCARD   DD  *                                                 
 ADARUN MODE=MULTI,PROGRAM=ADARAI,DBID=xxxxx,SVC=zzz,DE=yyyy      
 //DDKARTE  DD  *                                                 
 ADARAI CHKDB INACTIVE                                            
 //* 

Top of page

z/VM

Data Set DD Name Storage More Information
Associator DDASSORn disk  
Data Storage DDDATARn disk Required for RECOVER
Work DDWORKR1
DDWORKR4
disk Required for RECOVER
Data protection log DDPLOGRn tape/ disk Required for RECOVER
Recovery log (RLOG) DDRLOGR1 disk  
Job stream input DDJCLIN disk Required for RECOVER
Recovery job output DDJCLOUT disk Required for RECOVER
ADARAI messages DDDRUCK disk/ terminal/ printer Messages and Codes
ADARUN messages DDPRINT disk/ terminal/ printer Messages and Codes
ADARUN parameters DDCARD disk/ terminal/ reader Operations
ADARAI parameters DDKARTE disk/ terminal/ reader  

JCL Examples (z/VM)

Start Recovery Logging (ADARAI PREPARE)

DATADEF DDASSOR1,DSN=ADABASVv.ASSO,VOL=ASSOV1
DATADEF DDRLOGR1,DSN=ADABASVv.RLOG1,VOL=RLOGV1
DATADEF DDDRUCK,DSN=ADARAI.DDDRUCK,MODE=A
DATADEF DDPRINT,DSN=ADAFRM.DDPRINT,MODE=A
DATADEF DDCARD,DSN=RUNRAI.CONTROL,MODE=A
DATADEF DDKARTE,DSN=ADARAI.CONTROL,MODE=A
ADARUN  

Contents of RUNRAI CONTROL A1:

ADARUN PROG=ADARAI,DEVICE=dddd,DB=99,MODE=MULTI

Contents of ADARAI CONTROL A1:

ADARUN PREPARE RLOGSIZE=5,RLOGDEV=eeee,MINGENS=5

List The RLOG (ADARAI LIST)

DATADEF ASSOR1,DSN=ADABASVv.ASSO,VOL=ASSOV1
DATADEF RLOGR1,DSN=ADABASVv.RLOG1,VOL=RLOGV1
DATADEF DDDRUCK,DSN=ADARAI.DDDRUCK,MODE=A
DATADEF DDPRINT,DSN=ADARAI.DDPRINT,MODE=A
DATADEF DDCARD,DSN=RUNRAI.CONTROL,MODE=A
DATADEF DDKARTE,DSN=ADARAI.CONTROL,MODE=A

Contents of RUNRAI CONTROL A1:

ADARUN
PROG=ADARAI,DEVICE=dddd,DB=yyyyy,MODE=MULTI

Contents of ADARAI CONTROL A1:

ADARUN LIST

Top of page

VSE

The following functions are available for use with ADARAI on a VSE system:

Function Action
CHKDB check the database status
DISABLE disable the recovery log (RLOG)
LIST list the RLOG contents
PREPARE start the RLOGs
REMOVE remove the RLOG

The ADARAI RECOVER function used to rebuild the job stream is not currently supported on a VSE system.

File Symbolic Name Storage Logical Unit More Information
Associator ASSORn disk See note 1  
Data Storage DATARn disk See note 1 Required for RECOVER
Work WORKR1 disk   Required for RECOVER
Recovery log (RLOG) RLOGR1 disk    
Data protection log PLOGRn tape
disk
  Required for RECOVER
Job stream input JCLIN SYSIPT   Required for RECOVER
Recovery job output JCLOUT SYSPCH   Required for RECOVER
ADARAI messages   printer SYS009 Messages and Codes
ADARUN messages   printer SYSLST Messages and Codes
ADARUN parameters -
CARD
CARD
reader
tape
disk
SYSRDR
SYS000
See note 1
 
ADARAI parameters   reader SYSIPT  

Note:
Any programmer logical unit may be used.

Example JCS (VSE)

Start Recovery Logging (ADARAI PREPARE)

// ASSGN SYS009,00F
// EXEC PROC=ADAVvFIL
// EXEC PROC=ADAVvLIB
// EXEC ADARUN,SIZE=ADARUN
ADARUN PROG=ADARAI,SVC=xxx,DEVICE=dddd,DB=yyyyy,MODE=MULTI
/*
ADARAI PREPARE RLOGSIZE=5,MINGENS=5
/*

See Library and File Procedures for VSE Examples for descriptions of the VSE procedures (PROCs).

List the RLOG (ADARAI LIST)

// ASSGN SYS009,00F
// EXEC PROC=ADAVvFIL
// EXEC PROC=ADAVvLIB
// ASSGN SYS000,SYSIPT
// EXEC ADARUN,SIZE=ADARUN
ADARUN PROG=ADARAI,SVC=xxx,DEVICE=dddd,DB=yyyyy,MODE=MULTI
/*
ADARAI LIST
/*

Top of page