Version 7.4.4
 —  Utilities  —

JCL/JCS Requirements and Examples

This section describes the job control information required to run ADARAI with BS2000, OS/390 or z/OS, VM/ESA or z/VM, and VSE/ESA 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.

Dataset 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 Datasets

Handling Sequential Disk Datasets

There are no restrictions for sequential datasets on "public" disks.

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

Handling Sequential Tape Datasets

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

Input Datasets

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

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

ADARAI neither exports nor erases datasets. If catalog entries for tape datasets no longer exist, ADARAI creates temporary datasets with the names #ADARAI.RECOVER.TAPE.nnnnn, where "nnnnn" equals 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 dataset 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 datasets during the BS2000 recovery job. ADARAI assists in allocating those datasets on disk or tape regardless of whether the datasets existed at RECOVER time.

Existing "tape" datasets are never overwritten. To overwrite existing DDFILEA "disk" datasets, 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 datasets 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 userid" 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 datasets must be created, ADARAI uses temporary datasets 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 mnemo-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 dataset 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 = ADAvr
  %%AC  %%ASSOR1 = $ADAvr.DByyyyy.ASSOR1
  %%ASSOR2 = $ADAvr.DByyyyy.ASSOR2
  %%DATAR1 = $ADAvr.DByyyyy.DATAR1
  %%DATAR2 = $ADAvr.DByyyyy.DATAR2
  %%WORK   = $ADAvr.DByyyyy.WORK
  %%SORT   = $ADAvr.DByyyyy.SORT%
  %%TEMP   = $ADAvr.DByyyyy.TEMP
  %%RLOGR1 = $ADAvr.DByyyyy.RLOGR1
  %%PLOGR1 = $ADAvr.DByyyyy.PLOGR1
  %%PLOGR2 = $ADAvr.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=$ADAvv.RAI.OUT
  /       ASSIGN-SYSLST TO-FILE=$ADAvv.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 datasets in the pubset. In most cases, you must also reallocate the ASSO, DATA, WORK, and PLOG datasets on exactly the same disk locations they were on before the hardware failure.

The ADAR2E utility reads the TSOSCAT entries of assigned datasets 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

OS/390 or z/OS

Dataset 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 (OS/390 or z/OS)

Prepare for Recovery Logging (ADARAI PREPARE):

//RAIPREP   EXEC PGM=ADARUN
//STEPLIB   DD   DISP=SHR,DSN=ADABAS.Vvrs.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.Vvrs.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.Vvrs.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 (OS/390 or z/OS)

%%JCL-JOB-HEADER
  //ADARECOV JOB 5,'ADA-USER',MSGCLASS=X,CLASS=A,REGION=4096K
  //*
  //JOBLIB DD DSN=ADABAS.Vvrs.LOAD,DISP=SHR
  //*
%%JCL-JOB-TRAILER
  //*
  //* END OF RECOVERY
  //*
%%JCL-STEP-TRAILER
  //*
  //* END OF STEP
  //*
%%JCL-DDKARTE
  //DDKARTE DD *
%%JCL-ADASAV
  //*
  //* RESTORE FILE(S)/DATABASE
  //* 
  //%STEP    EXEC PGM=ADARUN        ADASAV JOB STEP
  %SEQUENTIAL
  //DDRLOGR1 DD DSN=ADABAS.Vvrs.RLOGR1,DISP=SHR
  //DDASSOR1 DD DSN=ADABAS.Vvrs.ASSOR1,DISP=SHR
  //DDDATAR1 DD DSN=ADABAS.Vvrs.DATAR1,DISP=SHR
  //DDWORKR1 DD DSN=ADABAS.Vvrs.WORKR1,DISP=SHR
  //DDDRUCK  DD SYSOUT=X
  //DDPRINT  DD SYSOUT=X
  //DDCARD   DD *
   ADARUN MODE=MULTI,PROG=ADASAV,DBID=yyyyy,DEVICE=dddd,SVC=xxx 
  //DDKARTE  DD *
  %KARTE
%%JCL-ADARES
  //*
  //* REGENERATE/BACKOUT
  //* 
  //%STEP    EXEC PGM=ADARUN        ADARES JOB STEP
  %SEQUENTIAL
  //DDRLOGR1 DD DSN=ADABAS.Vvrs.RLOGR1,DISP=SHR
  //DDASSOR1 DD DSN=ADABAS.Vvrs.ASSOR1,DISP=SHR
  //MERGINT1 DD DSN=ADABAS.Vvrs.MERGINT1,DISP=SHR
  //MERGINT2 DD DSN=ADABAS.Vvrs.MERGINT2,DISP=SHR
  //DDDRUCK  DD SYSOUT=X
  //DDPRINT  DD SYSOUT=X
  //SYSUDUMP DD SYSOUT=X
  //DDCARD   DD *
  ADARUN MODE=MULTI,PROG=ADARES,DBID=yyyyy,DEVICE=dddd,SVC=xxx
  //DDKARTE  DD *
  %KARTE%%JCL-ADADEF
  //* DEFINE NEWWORK
  //* 
  //%STEP    EXEC PGM=ADARUN        ADADEF JOB STEP
  //DDRLOGR1 DD DSN=ADABAS.Vvrs.RLOGR1,DISP=SHR
  //DDASSOR1 DD DSN=ADABAS.Vvrs.ASSOR1,DISP=SHR
  //DDDATAR1 DD DSN=ADABAS.Vvrs.DATAR1,DISP=SHR
  //DDWORKR1 DD DSN=ADABAS.Vvrs.WORKR1,DISP=SHR
  //DDTEMPR1 DD DSN=ADABAS.Vvrs.TEMPR1,DISP=SHR
  //DDSORTR1 DD DSN=ADABAS.Vvrs.SORTR1.DISP=SHR
  //DDDRUCK  DD SYSOUT=X
  //DDPRINT  DD SYSOUT=X
  //DDCARD   DD *
  ADARUN MODE=MULTI,PROG=ADADEF,DBID=yyyyy,DEVICE=dddd,SVC=xxx
  //DDKARTE  DD *
  %KARTE
%%JCL-ADALOD
  //*
  //* LOAD A FILE/MASS UPDATE
  //* 
  //%STEP    EXEC PGM=ADARUN        ADALOD JOB STEP
  %SEQUENTIAL
  //DDRLOGR1 DD DSN=ADABAS.Vvrs.RLOGR1,DISP=SHR
  //DDASSOR1 DD DSN=ADABAS.Vvrs.ASSOR1,DISP=SHR
  //DDDATAR1 DD DSN=ADABAS.Vvrs.DATAR1,DISP=SHR
  //DDWORKR1 DD DSN=ADABAS.Vvrs.WORKR1,DISP=SHR
  //DDTEMPR1 DD DSN=ADABAS.Vvrs.TEMPR1,DISP=SHR
  //DDSORTR1 DD DSN=ADABAS.Vvrs.SORTR1.DISP=SHR
  //DDFILEA  DD DSN=ADABAS.Vvrs.SORT.OVERFLOW
  //DDDRUCK  DD SYSOUT=X
  //DDPRINT  DD SYSOUT=X
  //DDCARD   DD *
  ADARUN MODE=MULTI,PROG=ADALOD,DBID=yyyyy,DEVICE=dddd,SVC=xxx
  //DDKARTE  DD *
  %KARTE
%%JCL-ADAORD
  //*
  //* REORDER
  //* 
  //%STEP    EXEC PGM=ADARUN        ADAORD JOB STEP
  %SEQUENTIAL
  //DDRLOGR1 DD DSN=ADABAS.Vvrs.RLOGR1,DISP=SHR
  //DDASSOR1 DD DSN=ADABAS.Vvrs.ASSOR1,DISP=SHR
  //DDDATAR1 DD DSN=ADABAS.Vvrs.DATAR1,DISP=SHR
  //DDWORKR1 DD DSN=ADABAS.Vvrs.WORKR1,DISP=SHR
  //DDDRUCK  DD SYSOUT=X
  //DDPRINT  DD SYSOUT=X
  //DDCARD   DD *
  ADARUN MODE=MULTI,PROG=ADAORD,DBID=yyyyy,DEVICE=dddd,SVC=xxx
  //DDKARTE  DD *
  %KARTE
%%JCL-ADAINV
  //* INVERT/ COUPLE
  //* 
  //%STEP    EXEC PGM=ADARUN        ADAINV JOB STEP
  //DDRLOGR1 DD DSN=ADABAS.Vvrs.RLOGR1,DISP=SHR
  //DDASSOR1 DD DSN=ADABAS.Vvrs.ASSOR1,DISP=SHR
  //DDDATAR1 DD DSN=ADABAS.Vvrs.DATAR1,DISP=SHR
  //DDWORKR1 DD DSN=ADABAS.Vvrs.WORKR1,DISP=SHR
  //DDDRUCK  DD SYSOUT=X
  //DDPRINT  DD SYSOUT=X
  //SYSUDUMP DD SYSOUT=X
  //DDCARD   DD *
  ADARUN MODE=MULTI,PROG=ADAINV,DBID=yyyyy,DEVICE=dddd,SVC=xxx
  //DDKARTE  DD *
  %KARTE%%JCL-STARTNUC
  //* START NUCLEUS
  //* 
  //STEP1    EXEC   PGM=IEBGENER             (submit to internal reader)
  //SYSPRINT DD     SYSOUT=X
  //SYSIN    DD     DUMMY
  //SYSUT2   DD     SYSOUT=(*,INTRDR)
  //SYSUT1   DD  DATA,DLM='$$'
  //ADANUC   JOB 5,'ADA-NUC',CLASS=A,MSGCLASS=X,REGION=6M
  //%STEP    EXEC PGM=ADARUN
  //STEPLIB  DD DSN=ADABAS.Vvrs.LOAD,DSIP=SHR
  //*
  //DDASSOR1 DD DSN=ADABAS.Vvrs.ASSOR1,DISP=SHR
  //DDDATAR1 DD DSN=ADABAS.Vvrs.DATAR1,DISP=SHR
  //DDWORKR1 DD DSN=ADABAS.Vvrs.WORKR1,DISP=SHR
  //*
  //DDRLOGR1 DD DSN=ADABAS.Vvrs.RLOGR1,DISP=SHR
  //*
  //DDPLOGR1 DD DSN=ADABAS.Vvrs.PLOGR1,DISP=SHR
  //*

  //SYSUDUMP DD SYSOUT=X
  //DDPRINT  DD SYSOUT=X
  //DDCARD   DD *
  ADARUN PROG=ADANUC  ADARUN UEX2=UEX2
  ADARUN NPLOG=2,PLOGDEV=dddd
  ADARUN PLOGSIZE=size
  ADARUN MODE=MULTI
  ADARUN DATABASE=yyyyy
  ADARUN SVC=xxx
  ADARUN UTIONLY=YES
  $$                                          (internal reader delimiter)
  //CHKDB    EXEC PGM=ADARUN                  (check for an active nucleus)
  //STEPLIB DD  DSN=ADABAS.Vvrs.LOAD,DISP=SHR
  //SYSOUT  DD SYSOUT=*
  //DDPRINT DD SYSOUT=*
  //DDDRUCK DD SYSOUT=*
  //DDCARD  DD *
  ADARUN MODE=MULTI,PROGRAM=ADARAI,
  ADARUN DBID=yyyyy,SVC=xxx,DE=dddd
  //DDKARTE DD *
  ADARAI CHKDB ACTIVE
  //*
%%JCL-ENDNUC
  //*
  //* ADADBS END NUCLEUS
  //*
  //%STEP    EXEC PGM=ADARUN
  //DDASSOR1 DD DSN=ADABAS.Vvrs.ASSOR1,DISP=SHR
  //DDDATAR1 DD DSN=ADABAS.Vvrs.DATAR1,DISP=SHR
  //DDWORKR1 DD DSN=ADABAS.Vvrs.WORKR1,DISP=SHR
  //DDTEMPR1 DD DSN=ADABAS.Vvrs.TEMPR1,DISP=SHR
  //DDSORTR1 DD DSN=ADABAS.Vvrs.SORTR1,DISP=SHR
  //DDRLOGR1 DD DSN=ADABAS.Vvrs.RLOGR1,DISP=SHR
  //DDDRUCK  DD SYSOUT=X
  //DDPRINT  DD SYSOUT=X
  //DDCARD   DD *
  ADARUN MODE=MULTI,PROG=ADADBS,DBID=yyyyy,DE=dddd,SVC=xxx
  //DDKARTE DD *
  ADABAS OPERCOM ADAEND
  //CHKDB    EXEC PGM=ADARUN                 (check for an inactive nucleus)
  //STEPLIB DD  DSN=ADABAS.Vvrs.LOAD,DISP=SHR
  //SYSOUT  DD SYSOUT=*
  //DDPRINT DD SYSOUT=*
  //DDDRUCK DD SYSOUT=*
  //DDCARD  DD *
  ADARUN MODE=MULTI,PROGRAM=ADARAI,
  ADARUN DBID=yyyyy,SVC=xxx,DE=dddd
  //DDKARTE DD *
  ADARAI CHKDB INACTIVE
  //*

Top of page

VM/ESA or z/VM

ADARAI is not currently supported by either the ADAMAINT EXEC (database maintenance) or the INSTADA EXEC (database installation). The information needed to run ADARAI must be added manually to the EXECs, CONTROL files, and so on.

Start of instruction setAdd the required information as follows:

  1. Update ADARAI PARM to contain the correct database ID (the default ID is "00001").

  2. Add MULTI write LINK commands to the ADARAI minidisks in the PROFILE EXEC of the DBA virtual machine. The ADARAI minidisks such as DDRLOGR1 must be defined in the CP directory of the Adabas nucleus virtual machine.

  3. Complete the ADFdbid EXEC with a DATADEF statement for DDRLOGR1. This statement should always be defined for every utility and for the nucleus. The dataset must be CMS-formatted and reserved with the defined file name and file types.

Dataset DD Name Storage More Information
Associator DDASSORn disk  
Data Storage DDDATARn disk Required for RECOVER
Work DDWORKR1
DDWORKR4
disk Required for RECOVER
Datra 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 (VM/ESA or 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/ESA

The following functions are available for use with ADARAI on a VSE/ESA 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/ESA 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/ESA)

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 Procedures for VSE/ESA Examples for descriptions of the VSE/ESA 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