Cloning DBRC definitions for test environments

In a test environment, the clone DBRC definitions utility allows you to ease DBRC problems by cloning DBRC definitions to an alternate RECON.

About this task

The utility replicates HALDB DBRC definitions to other RECONs and allows you to exchange the high-level data set name qualifier.

You must have your own data sets for testing the batch program, or testing online programs with IMS Batch Terminal Simulator. This requires you to have your own RECONs.

When batch jobs are run with DBRC active, you must accommodate recovery and authorization issues as well. For example, if an application program fails, the database is flagged by DBRC to indicate the need for some recovery action. This utility helps eliminate those problems.

To use this utility, include the sample JCL in your test JCL.

Alternatively, you can create the JCL by using the ISPF user interface.

Procedure

  1. Locate the sample JCL for this utility in the SIHCSAMP file, member IHCECLON.
  2. Specify the JCL DD statements.
    For a list of DD statements, see COPYDBRC DD statements.
  3. Specify the COPYDBRC command parameters.
    For a list of COPYDBRC command parameters, see COPYDBRC command parameters.
  4. Include the sample JCL in your test JCL.

Example

In the following sample JCL:

  • the.other.RECON is the RECON for the programmer.
  • your.RECON is the RECON to be copied from.
  • your.DBDLIB is the DBD library for the DBD.
Figure 1. Sample JCL from member IHCECLON (Part 1 of 2)
 //*------------------------------------------------------------
 //*
 //*           Clone DBRC definitions to alternate RECON
 //*
 //*------------------------------------------------------------
 //*------------------------------------------------------------
 //*           Allocate RECON datasets
 //*------------------------------------------------------------
 //ALLO   EXEC PGM=IDCAMS
 //SYSPRINT DD SYSOUT=*
 //SYSIN    DD *
  DELETE the.other.RECON1
  DELETE the.other.RECON2
  DELETE the.other.RECON3
  SET MAXCC=0
  DEFINE CLUSTER(NAME(the.other.RECON1) VOL(volser) KEYS(32 0) -
         CISZ(8192) RECSZ(8100 8192)  CYLINDERS(2 2) -
         FREESPACE(30,10) INDEXED SHR(3 3) SPEED)
  DEFINE CLUSTER(NAME(the.other.RECON2) VOL(volser) KEYS(32 0) -
         CISZ(8192) RECSZ(8100 8192)  CYLINDERS(2 2) -
         FREESPACE(30,10) INDEXED SHR(3 3) SPEED)
  DEFINE CLUSTER(NAME(the.other.RECON3) VOL(volser) KEYS(32 0) -
         CISZ(8192) RECSZ(8100 8192)  CYLINDERS(2 2) -
         FREESPACE(30,10) INDEXED SHR(3 3) SPEED)
 //*------------------------------------------------------------
 //*           Create HALDB statements
 //*------------------------------------------------------------
 //CRE    EXEC PGM=IHCHALDB,
 //            REGION=60M
 //STEPLIB  DD DISP=SHR,DSN=your.SIHCLOAD
 //         DD DISP=SHR,DSN=your.SDFSRESL
 //DFSRESLB DD DISP=SHR,DSN=your.SDFSRESL
 //IMS      DD DISP=SHR,DSN=your.DBDLIB
 //RECON1   DD DISP=SHR,DSN=your.RECON1
 //RECON2   DD DISP=SHR,DSN=your.RECON2
 //RECON3   DD DISP=SHR,DSN=your.RECON3
 //MSGPRINT DD SYSOUT=*
 //SYSUDUMP DD SYSOUT=*
 //IHCSYSIN DD *
  COPYDBRC DBD(nnnnn) -
          DSNPREF(new.hlq) -
          DSNDBD(DBD) -
          INCLIND(YES) -
          TODD(DBRCOUT)
 /*
 //DBRCOUT  DD DISP=(,PASS),SPACE=(TRK,(1,1)),UNIT=SYSALLDA
 //*---------------------------------------------------------
 //*           INIT.RECON
 //*---------------------------------------------------------
 //INITRCN  EXEC PGM=DSPURX00,REGION=50M,COND=(4,LE)
 //STEPLIB  DD DISP=SHR,DSN=your.SDFSRESL
 //RECON1   DD DISP=SHR,DSN=the.other.RECON1
 //RECON2   DD DISP=SHR,DSN=the.other.RECON2
 //RECON3   DD DISP=SHR,DSN=the.other.RECON3
 //DFSRESLB DD DISP=SHR,DSN=your.SDFSRESL
 //IMS      DD DISP=SHR,DSN=your.DBDLIB
 //SYSPRINT DD SYSOUT=*
 //SYSIN    DD *
  INIT.RECON NOFORCER CATDS TAPEUNIT(3480)
 /*
Figure 2. Sample JCL from member IHCECLON (Part 2 of 2)
//*---------------------------------------------------------
//*           APPLY TO OTHER DBRC                           
//*---------------------------------------------------------
//DBRC   EXEC PGM=IHCYUTIL,                                 
//            REGION=60M                                    
//STEPLIB  DD DISP=SHR,DSN=your.SIHCLOAD                    
//         DD DISP=SHR,DSN=your.SDFSRESL                    
//DFSRESLB DD DISP=SHR,DSN=your.SDFSRESL                    
//RECON1   DD DISP=SHR,DSN=the.other.RECON1                 
//RECON2   DD DISP=SHR,DSN=the.other.RECON2                 
//RECON3   DD DISP=SHR,DSN=the.other.RECON3                 
//IMS      DD DISP=SHR,DSN=your.DBDLIB                      
//TRACE    DD DUMMY                                         
//SYSPRINT DD SYSOUT=*                                      
//MSGPRINT DD SYSOUT=*                                      
//SYSIN    DD DISP=(OLD,DELETE),DSN=*.CRE.DBRCOUT           
//IHCSYSIN DD *                                             
   RUN   PGM(IHCYDBR0)                                      
//