JCL/JCS Requirements and Examples

#### Search Results

Search

# JCL/JCS Requirements and Examples

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

This document covers the following topics:

- BS2000

- z/OS

- z/VSE

## BS2000

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

File | 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 Files

#### Handling Sequential Files

There are no restrictions for sequential files on public disks.

Sequential files 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 files on private disks.

#### Handling Sequential Tape Files

Software AG recommends not removing catalog entries for sequential files on tapes from the system's catalog. If RECOVER does not find a catalog entry for a sequential file 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 files, whether on disk or on tape.

#### Input Files

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

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

ADARAI neither exports nor erases files. If catalog entries for tape data sets no longer exist, ADARAI creates temporary files 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 SET-LOGON-PARAMETERS
    /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
    /EXIT-JOB MODE=NORMAL,SYS-OUT=NONE

#### 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 SET-LOGON-PARAMETERS
    /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
    /EXIT-JOB MODE=NORMAL,SYS-OUT=NONE

#### 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 SET-LOGON-PARAMETERS
    /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
    /EXIT-JOB MODE=NORMAL,SYS-OUT=NONE

#### 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:

- The first two positions must be blank;

- Statements can be up to 256 characters long, including the blanks in the first two positions;

- Statements can be continued; the continuation mark (-) can be in any position (it does not have to be in position 74);

- In version 10, ADARAI automatically adds the command:

      /MODIFY-SDF-OPTIONS CONTINUATION=NEW-MODE

- Job control statements for the BS2000 executive are automatically broken up into 72-byte segments, if necessary. Normal program control statements are not segmented.

- Except for string substitution (described below), ADARAI does not check or change the job control statement syntax.

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

- Substitution strings for repeating often-used job control input;

- DDFILEA data set overwriting, tape volume assignment, and disk space credit;

- Subtask processing of RECOVER-generated console messages.

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:

- The catalog entry for a tape data set is not available, and ADARAI inserts a /IMPORT-FILE statement for a temporary tape data set, causing a DMS0DA5 console message.

- Tape output for the DDFILEA data set is required, and ADARAI includes JCL that causes a message requesting that a scratch tape be mounted.

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:

    /  SET-LOGON-PARAMETERS
    /  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
    /EXIT-JOB MODE=NORMAL,SYS-OUT=NONE

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 SET-LOGON-PARAMETERS USER-ID=%%USERID,ACCOUNT=%%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 -----------------------------------------------------------*
      /EXIT-JOB MODE=NORMAL,SYS-OUT=NONE
      /.JOBERROR REMARK
      /REMARK +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
      /REMARK *          RECOVERY JOB TERMINATED WITH ERROR              *
      /REMARK +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
      /EXIT-JOB MODE=NORMAL,SYS-OUT=NONE
    %%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 SET-LOGON-PARAMETERS USER-ID=%%USERID,ACCOUNT=%%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
      :/EXIT-JOB MODE=NORMAL,SYS-OUT=NONE
      @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

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

## z/VSE

The following functions are available for use with ADARAI on a z/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 z/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 (z/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 z/VSE Examples for descriptions of the z/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
    /*

### On this page

- BS2000
- z/OS
- z/VSE