Identifying GENJCL libraries and skeletal members
IMS Recovery Expert invokes the DBRC GENJCL function to generate the JCL necessary to run the steps in a recovery process. The PDS data sets where your GENJCL members exist need to be specified to IMS Recovery Expert.
Up to 5 PDS libraries can be specified. The parameters in the BSY#PARM member that identify these libraries are:
- IMS_GENJCL_DATASET1
- IMS_GENJCL_DATASET2
- IMS_GENJCL_DATASET3
- IMS_GENJCL_DATASET4
- IMS_GENJCL_DATASET5
The GENJCL libraries specified in the BSY#PARM member are the default data sets to use when a new application, system restore, or disaster recovery profile is used. You can also override these values in any individual profile.
Creating GENJCL skeletal members
The GENJCL members that are used by IMS Recovery Expert include special control cards which do not exist in the DBRC GENJCL language. This is done because IMS Recovery Expert might make multiple GENJCL calls when generating each utility, and the DBRC GENJCL language capabilities do not support all the necessary functionality. The types of calls that can be made for each utility are shown in GENJCL calls by utility. For each utility, each of these calls have a GENTYPE and GENPHAS which is specific to the function being performed and the symbols passed. To allow you to tailor your GENJCL skeletons to your utilities needs, you can indicate which of these calls you want to process and the JCL or control cards to generate for the call. This is done by enclosing the GENJCL statements within a GENJCL_BEGIN/GENJCL_END block. The format of these statements is:
GENJCL_BEGIN GENTYPE=type
GENPHAS=phase
This indicates the beginning of a series of JCL or control cards that are to be processed for the GENJCL call when the GENTYPE and GENPHAS variables match the type and phase specified on the control card.
GENJCL_END
This indicates the end of the block for the prior GENJCL_BEGIN.
Refer to GENJCL calls by utility to tailor your GENJCL skeletons to meet the needs of your utility. When IMS Recovery Expert makes a GENJCL call, it will only process the statements within the GENJCL_BEGIN/GENJCL_END block that matches the GENTYPE and GENPHAS. If a GENJCL_BEGIN/GENJCL_END block is not coded for a GENTYPE/GENPHAS call, then that GENJCL call is skipped.
IMS Recovery Expert also provides skeletal members that will list the variables and values passed on each call. These members can be useful for tailoring your own skeletal members for other vendor utilities. The members are:
Function | Member | Purpose |
---|---|---|
Recovery | BSYLISRV | Provides listing capabilities for each GENJCL call made when building the recovery jobs |
Recovery | BSYIMSRV | Executes the base IMS Recovery utility |
Recovery | BSYDRF | Executes the IBM® IMS Database Recovery Facility utility |
Image Copy | BSYLISIC | Provides listing capabilities for each GENJCL call made when building the image copy jobs |
Image Copy | BSYIMSIC | Executes the base IMS Image Copy utility |
Image Copy | BSYHPIC | Executes the IBM IMS High Performance Image Copy utility |
FF Index Rebuild | BSYLISIX | Provides listing capabilities for each GENJCL call made when building the index rebuild jobs |
FF Index Rebuild | BSYIIB | Executes the IBM IMS Index Builder utility |
FP Index Rebuild | BSYLISFP | Provides listing capabilities for each GENJCL call made when building fast path secondary index rebuild jobs |
FP Index Rebuild | BSYFPSI | Executes the IBM IMS Fast Path Secondary Index utility |
HALDB Rebuild | BSYLISFP | Provides listing capabilities for each GENJCL call made when building HALDB PINDEX or ILDS jobs |
HALDB Rebuild | BSYPREC0 | Executes the IMS HALDB PINDEX/ILDS utility (DFSPREC0) |
HALDB Rebuild | BSYIIB | Executes the IBM IMS Index Builder utility (See Note) |
Change Accumulation | BSYLISCA | Provides listing capabilities for each GENJCL call made when building change accumulation jobs |
Change Accumulation | BSYIMSCA | Executes the IMS Change Accumulation utility |
Change Accumulation | BSYHPCA | Execute the IBM IMS High Performance Change Accumulation utility |
For the IMS Recovery Solution Pack utilities, IMS Recovery Expert uses the GENJCL.USER command to process the skeletal members. All of the documented symbolic keywords in the DBRC reference guides are supported for the specific GENJCL.USER function that is invoked by IMS Recovery Expert.
For user utilities, IMS Recovery Expert performs the various GENJCL functions as described in the section titled GENJCL calls by utility.
Defining GENJCL skeletal member names
You can also specify the default GENJCL skeletal member to invoke for each utility that might need to be run. The following parameters in the BSY#PARM member specify the default skeletal members:
- GENJCL_USER_RECOV_MEM
- Specifies the GENJCL member to be used for performing database recovery.
- GENJCL_USER_FFIX_MEM
- Specifies the GENJCL member to be used for performing full function index rebuild. This member is also used if the BSY#PARM or recovery options parameter "USE_FFIX_FOR_HALDB_RBLD" is set to Y.
- GENJCL_USER_FPIX_MEM
- Specifies the GENJCL member to be used for performing fast path secondary index rebuild.
- GENJCL_USER_HBIX_MEM
- Specifies the GENJCL member to be used for performing HALDB PINDEX and ILDS rebuild. This member is not used if the BSY#PARM or recovery options parameter "USE_FFIX_FOR_HALDB_RBLD" is set to Y.
- GENJCL_USER_CA_MEM
- Specifies the GENJCL member to be used for performing change accumulation.
- GENJCL_USER_IC_MEM
- Specifies the GENJCL member to be used for creating post recovery image copies.
For each of these utilities, you only need to specify a member for the utilities that were specified in Setting defaults for recovery utilities or that might be overridden in a profile.
The GENJCL skeletal members specified in the BSY#PARM member are the default members to use when a new application, system restore, or disaster recovery profile is used. You can also override these values in any individual profile.
GENJCL calls by utility
When IMS Recovery Expert needs to create JCL to execute one of the defined utilities, it makes one or more GENJCL calls using the GENJCL skeleton member that you specified. All documented symbolic keywords in the DBRC reference guides are supported by each of these calls. In addition, IMS Recovery Expert passes the symbolic keywords listed in the following tables on the DBRC GENJCL USERKEYS keyword.
For each call, IMS Recovery Expert sets two special keywords that indicate the type and phase of the call. The call type is specified by the GENTYPE keyword and indicates the type of call that is being made. The call phase is specified by the GENPHAS keyword and indicates the phase of the call that is being made. The GENTYPE value varies by utility. The GENPHAS value is one of the following:
- CTL – indicates that this is a control type call; currently only passed on GENTYPE=START and GENTYPE=END
- JCL – indicates that this is a JCL type call; this is passed on the calls when JCL would be created by GENJCL
- SYSIN – indicates that this is a SYSIN or control card type call; this is passed on the calls when SYSIN or control card input would be created by GENJCL
For each utility shown in the following table, each possible call and the passed symbolic keywords and values are listed and can be used to generate your own GENJCL skeletons. See Creating GENJCL skeletal members for more details on how to build your own GENJCL skeletons.
- Recovery Utility
The possible GENJCL calls made when processing the recovery utility and their order are shown in the following table:
Table 1. Recovery Utility: GENJCL calls GENJCL Function
Called
Symbolic Keyword
Value
GENJCL.USER
Once
GENTYPE
START
GENPHAS
CTL
SSID
ssid / grpname
GENJCL.USER
Once
GENTYPE
PIT
GENPHAS
JCL
PITDAT7
yyyyddd
PITDATE
yyddd
PITTIME
hhmmsst
RCVTIME
‘CURRENT’
yydddhhmmssthjiju
yyddhhmmsst
RCVTYPE
PITR [,NOCHECK]
TSR
CURRENT
GENJCL.USER
Once per CAGRP
(See Note 1)
GENTYPE
CAGROUP
GENPHAS
JCL
GRPNAME
cagrpnm
GRPNO
1-99999
GENJCL.USER
Once per RECOVGRP
(See Note 1)
GENTYPE
RCVGROUP
GENPHAS
JCL
GRPNAME
Rcvgrpnm
GRPNO
1-99999
GENJCL.RECOV
Once per DBDS
(See Note 4)
GENTYPE
RECOV
GENPHAS
JCL
SSID
ssid / grpname
DBTYPE
FF
FP
HALDB
DBNAME
dbdname
MDBNAME
HALDB master
dbdname
DBDDN
ddname
DBTYPE
FF
FP
HALDB
GENJCL.USER
Once
GENTYPE
SYSIN
GENPHAS
SYSIN
SSID
ssid / grpname
GENJCL.USER
Once per CAGRP
(See Note 1)
GENTYPE
CAGROUP
GENPHAS
SYSIN
GRPNAME
cagrpnm
GRPNO
1-99999
GENJCL.USER
Once per RECOVGRP
(See Note 1)
GENTYPE
RCVGROUP
GENPHAS
SYSIN
GRPNAME
Rcvgrpnm
GRPNO
1-99999
GENJCL.USER
Once per DBDS
(See Note 2)
(See Note 4 )
GENTYPE
DATASET
GENPHAS
SYSIN
DBNAME
dbdname
MDBNAME
HALDB master dbdname
DBDDN
ddname
DBTYPE
FF
FP
HALDB
ICRCVD (See Note 3)
FFY | FFN
FPY | FPN
HDY | HDN
XICTYP (See Note 5) CIC | BAT XICRUN (See Note 5) yydddhhmmssthjiju GENJCL.USER
Once
GENTYPE
PIT
GENPHAS
SYSIN
PITDAT7
yyyyddd
PITDATE
yyddd
PITTIME
hhmmsst
RCVTIME
‘CURRENT’
yydddhhmmssthjiju
yyddhhmmsst
RCVTYPE
PITR [,NOCHECK]
TSR
CURRENT
GENJCL.USER
Once
GENTYPE
END
GENPHAS
CTL
Notes:- The CAGRP and RECOVGRP calls are made only when the CAGRP or RECOVGRP name were actually included in the application profile. However, if SLB image copies are used as input into recovery, this process is performed at the data set level so that the ICRCVD symbolic can be set, indicating that IMS Recovery Expert has already recovered the data set. Also, on restart, even if these groups were included in the application profile, it is possible that these calls are not made if some of the DBDSs in the group were previously image copied. In that case, the group calls are skipped so that the entire group is not reprocessed.
- When a CAGRP or RECOVGRP was included in the application profile and a GENTYPE for CAGRP or RECOVGRP is done for all members in the group, the DATASET call is not made for those DBDSs that were processed as part of the group calls.
- The ICRCVD symbolic is
used to indicate whether IMS Recovery Expert already
recovered the database from an image copy and, as a result, the recovery
utility can skip that process. The values for this variable and their
meaning are:
- FFY – database is FF and image copy was restored
- FFN – database is FF and image copy was not restored
- FPY – database is FP and image copy was restored
- FPN – database is FP and image copy was not restored
- HDY – database is HALDB and image copy was restored
- HDN – database is HALDB and image copy was not restored
- If the setting in the
Execute Recovery options for
Include indexes in recovery list
is set to N, then this call will not be made for any FF, FP, or HALDB primary or secondary indexes. - If Recovery Resources is set to U on Recovery utility profile and CIC type User Image Copy is specified, XICTYP is set to CIC and XICRUN is set to the UIC RUN timestamp value. Otherwise, XICTYP is set to BAT and XICRUN is not set.
If Recovery Resources is set to U on Recovery utility profile, you must change GENJCL skeletal member as follows:- Change for FF DB
- Change for HALDB
- Change for FP DB
- Full Function Index Build Utility
The possible GENJCL calls made when processing the Full Function Index Build utility and their order are shown in the following table:
Table 2. Full Function Index Build Utility: GENJCL calls GENJCL Function
Called
Symbolic Keyword
Value
GENJCL.USER
Once per each DB with associated indexes
GENTYPE
START
GENPHAS
CTL
SSID
ssid / grpname
GENJCL.USER
Once per each DB with associated indexes
GENTYPE
SYSIN
GENPHAS
SYSIN
SSID
ssid / grpname
GENJCL.USER
Once for all FF secondary indexes if IXSEL=ALL.
Once for each FF secondary index if IXSEL=SELECTED
GENTYPE
FFSIX
GENPHAS
SYSIN
PRIMDBD
primary dbdname
INDXDBD
index dbdname or ‘ALL’ if IXSEL=ALL
IXTYPE
FFSIX
IXSEL
ALL | SELECTED
IXMORE (See Note)
Y if more indexes
N on last (or only) index
IXNUM
1-99999 (index counter within the DB)
GENJCL.USER
Once for each FF primary index
GENTYPE
FFPIX
GENPHAS
SYSIN
PRIMDBD
primary dbdname
INDXDBD
index dbdname
IXTYPE
FFPIX
IXSEL
N/A (blanks)
IXMORE (See Note)
Y if more indexes
N on last (or only) index
IXNUM
1-99999 (index counter within the DB)
GENJCL.USER
Once for all HALDB secondary indexes if IXSEL=ALL.
Once for each HALDB secondary index if IXSEL=SELECTED
GENTYPE
HBSIX
GENPHAS
SYSIN
PRIMDBD
primary dbdname
INDXDBD
index dbdname or ‘ALL’ if IXSEL=ALL
IXTYPE
HBSIX
IXSEL
ALL | SELECTED
IXMORE (See Note)
Y if more indexes
N on last (or only) index
IXNUM
1-99999 (index counter within the DB)
GENJCL.USER
Once for all HALDB ILDS partitions if IXSEL=ALL.
Once for each HALDB ILDS partitions if IXSEL=SELECTED
GENTYPE
HBILDS
GENPHAS
SYSIN
PRIMDBD
primary dbdname
INDXDBD
index dbdname
IXTYPE
HBILDS
IXSEL
ALL | SELECTED
IXMORE (See Note)
Y if more indexes
N on last (or only) index
IXNUM
1-99999 (index counter within the DB)
GENJCL.USER
Once for each HALDB primary index if FF index rebuild is being used for HALDB
GENTYPE
HBPIX
GENPHAS
SYSIN
PRIMDBD
primary dbdname
INDXDBD
index dbdname
IXTYPE
HBPIX
IXSEL
N/A (blanks)
IXMORE (See Note)
Y if more indexes
N on last (or only) index
IXNUM
1-99999 (index counter within the DB)
GENJCL.USER
Once per each DB with associated indexes
GENTYPE
END
GENPHAS
CTL
Note: The IXMORE symbolic keyword is set to Y if there are more indexes within the specify GENTYPE and GENPHASE call. For example, if a FF database has multiple secondary indexes and the IXSEL is selected, then there will be a GENTYPE=FFSIX, GENPHAS=SYSIN call for each secondary index. IXMORE will be set to Y to indicate that more calls will be made, or N to indicate the last call. This variable can be used when creating a series of indexes, which must be separated by a comma and closed with a parenthesis on the last occurrence.- Fast Path Secondary Index Build Utility
The possible GENJCL calls made when processing the Fast Path Index Build utility and their order are shown in the following table. This series of calls is made for each DB that has secondary indexes.
Table 3. Fast Path Secondary Index Build Utility: GENJCL calls GENJCL Function
Called
Symbolic Keyword
Value
GENJCL.USER
Once per each DB with associated indexes
GENTYPE
START
GENPHAS
CTL
SSID
ssid / grpname
GENJCL.USER
Once per each DB with associated indexes
GENTYPE
SYSIN
GENPHAS
SYSIN
SSID
ssid / grpname
GENJCL.USER
Once for each FP secondary index
GENTYPE
FPSIX
GENPHAS
SYSIN
PRIMDBD
primary dbdname
INDXDBD
index dbdname
IXTYPE
FPSIX
IXMORE
Y if more indexes
N on last (or only) index
IXNUM
1-99999 (index counter within the DB)
GENJCL.USER
Once per each DB with associated indexes
GENTYPE
END
GENPHAS
CTL
- HALDB Primary Index / ILDS Build Utility
The possible GENJCL calls made when processing the HALDB Primary Index / ILDS utility and their order are shown in the following table:
Table 4. HALDB Primary Index / ILDS Build Utility: GENJCL calls GENJCL Function
Called
Symbolic Keyword
Value
GENJCL.USER
Once for each HALDB partition
GENTYPE
START
GENPHAS
CTL
SSID
ssid / grpname
GENJCL.USER
Once for each HALDB partition
GENTYPE
SYSIN
GENPHAS
SYSIN
SSID
ssid / grpname
GENJCL.USER
Once for each partition
GENTYPE
HALDB
GENPHAS
SYSIN
MDBNAME
HALDB master dbdname
PART
partition name
BUILD
ILE
INDEX
BOTH
GENJCL.USER
Once for each HALDB partition
GENTYPE
END
GENPHAS
CTL
- Change Accumulation Utility
The possible GENJCL calls made when processing the Change Accumulation utility and their order are shown in the following table:
Table 5. Change Accumulation Utility: GENJCL calls GENJCL Function
Called
Symbolic Keyword
Value
GENJCL.USER
Once
GENTYPE
START
GENPHAS
CTL
SSID
ssid / grpname
GENJCL.USER
Once for each CAGRP
GENTYPE
SORT
GENPHAS
JCL
CAGRP
cagrpnm
CAGRPNO
1-99999
GENJCL.CA
Once for each CAGRP
GENTYPE
CA
GENPHAS
JCL
GRPNAME
cagrpnm
CAGRPNO
1-99999
GENJCL.USER
Once
GENTYPE
SYSIN
GENPHAS
SYSIN
SSID
ssid / grpname
GENJCL.
USER
Once
GENTYPE
PIT
GENPHAS
SYSIN
PITDAT7
yyyyddd
PITDATE
yyddd
PITTIME
hhmmsst
CATIME
‘CURRENT’
yydddhhmmssthjiju
yyddhhmmsst
GENJCL.USER
Once for each CAGRP
GENTYPE
SORT
GENPHAS
SYSIN
CAGRP
cagrpnm
CAGRPNO
1-99999
GENJCL.USER
Once for each CAGRP
GENTYPE
GROUP
GENPHAS
SYSIN
CAGRP
cagrpnm
CAGRPNO
1-99999
GENJCL.USER
Once
GENTYPE
END
GENPHAS
CTL
- Post Recovery Image Copy Utility
The possible GENJCL calls made when processing the Post Recovery Image Copy utility and their order are shown in the following table:
Table 6. Post Recovery Image Copy Utility: GENJCL calls GENJCL Function
Called
Symbolic Keyword
Value
GENJCL.USER
Once
GENTYPE
START
GENPHAS
CTL
SSID
ssid / grpname
GENJCL.USER
Once for each CAGRP
(See Note)
GENTYPE
CAGROUP
GENPHAS
JCL
GRPNAME
cagrpnm
GRPNO
1-99999
GENJCL.USER
Once for each RECOVGRP
(See Note)
GENTYPE
RCVGROUP
GENPHAS
JCL
GRPNAME
rcvgrpnm
GRPNO
1-99999
GENJCL.IC
Once per DBDS
GENTYPE
IC
GENPHAS
JCL
ICNUM
1-99999
DBTYPE
FF
FP
HALDB
SSID
ssid / grpname
GENJCL.USER
Once
GENTYPE
SYSIN
GENPHAS
SYSIN
SSID
ssid / grpname
GENJCL.USER
Once for each CAGRP
(See Note)
GENTYPE
CAGROUP
GENPHAS
SYSIN
CAGRP
cagrpnm
CAGRPNO
1-99999
GENJCL.USER
Once for each RECOVGRP
(See Note)
GENTYPE
RCVGROUP
GENPHAS
SYSIN
GRPNAME
rcvgrpnm
GRPNO
1-99999
GENJCL.USER
Once per DBDS
GENTYPE
DATASET
GENPHAS
SYSIN
ICNUM
1-99999
DBNAME
dbdname
DBDDN
ddname
DBTYPE
FF
FP
HALDB
GENJCL.USER
Once
GENTYPE
END
GENPHAS
CTL
Note: The CAGRP and RECOVGRP calls are only made when the CAGRP or RECOVGRP name were actually included in the application profile. Also, on restart, even if these groups were included in the application profile, it is possible that these calls are not made if some of the DBDSs in the group were previously image copied. In that case, the group calls are skipped so that the entire group is not reprocessed.
Testing Skeleton Members
The following DD statements can be added to any IMS Recovery Expert generated recovery JCL to help test a skeletal member, or to view the symbolic keywords and values that are available to create skeletal JCL members.
- BSYJCLO
If you add this DD statement to an IMS Recovery Expert generated recovery job (that is, an application recovery job, or a system recovery job used in DR or full system recovery), then IMS Recovery Expert will write the JCL that is generated using the skeletal JCL members during a recovery job. This DD must point to a file with LRECL=80, RECFM=F or FB.
- JCLONLY DD DUMMY
If you add this DD statement to an IMS Recovery Expert generated recovery job, then when the recovery job is run, IMS Recovery Expert will only generate the JCL using the skeletal members. No recovery steps will be run. If a JCLONLY DD is specified in the JCL, a BSYJCLO DD must also be specified.