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
Note: The BSYIIB member can be used to execute the IBM IMS Index Builder for rebuilding HALDB PINDEX/ILDS, but only when you specify Use FF for HALDB as the Execute Index Rebuild recovery option. BSYIIB will not function properly if you specify HALDB GENJCL member name as the Execute Index Rebuild recovery option.

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:
  1. 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.
  2. 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.
  3. 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
  4. 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.
  5. 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
Before change:
%DELETE (%DBTYPE NE 'FF' | %ICRCVD NE 'FFY')     
  ADD DBDS(%DBNAME %DBDDN) USEDBDS DBATRB(DBDSL(999)) IC() IB() PC()
%ENDDEL
After change:
%DELETE (%DBTYPE NE 'FF' | %ICRCVD NE 'FFY' | %XICTYP EQ 'CIC')     
  ADD DBDS(%DBNAME %DBDDN) USEDBDS DBATRB(DBDSL(999)) IC() IB() PC()
%ENDDEL                                                             
%DELETE (%DBTYPE NE 'FF' | %ICRCVD NE 'FFY' | %XICTYP NE 'CIC')     
  ADD DBDS(%DBNAME %DBDDN) USEUICTIME(%XICRUN)   -                  
                           DBATRB(DBDSL(999)) IC() IB() PC()        
%ENDDEL                                                            
Change for HALDB
Before change:
%DELETE (%DBTYPE NE 'HALDB' | %ICRCVD NE 'HDY')  
  ADD DBDS(%DBNAME %DBDDN) USEDBDS DBATRB(DBDSL(999)) IC() IB() PC()
%ENDDEL  
After change:
%DELETE (%DBTYPE NE 'HALDB' | %ICRCVD NE 'HDY' | %XICTYP EQ 'CIC')  
  ADD DBDS(%DBNAME %DBDDN) USEDBDS DBATRB(DBDSL(999)) IC() IB() PC()
%ENDDEL                                                             
%DELETE (%DBTYPE NE 'HALDB' | %ICRCVD NE 'HDY' | %XICTYP NE 'CIC')  
  ADD DBDS(%DBNAME %DBDDN) USEUICTIME(%XICRUN)  -                   
                           DBATRB(DBDSL(999)) IC() IB() PC()        
%ENDDEL
Change for FP DB
Before change:
%DELETE (%DBTYPE NE 'FP' | %ICRCVD NE 'FPY')
  ADD AREA(%DBNAME %DBDDN) USEAREA DBATRB(DBDSL(999)) IC() IB() PC()
%ENDDEL
After change:
%DELETE (%DBTYPE NE 'FP' | %ICRCVD NE 'FPY' | %XICTYP EQ 'CIC')     
  ADD AREA(%DBNAME %DBDDN) USEAREA DBATRB(DBDSL(999)) IC() IB() PC()
%ENDDEL                                                             
%DELETE (%DBTYPE NE 'FP' | %ICRCVD NE 'FPY' | %XICTYP NE 'CIC')     
  ADD AREA(%DBNAME %DBDDN) USEUICTIME(%XICRUN)  -                   
                           DBATRB(DBDSL(999)) IC() IB() PC()        
%ENDDEL  
This change is included in the sample GENJCL skeletal member BSYDRF.
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.