Examples for enabling the HD Pointer Checker HASH Check option

Use the following examples to enable the HD Pointer Checker HASH Check option for the Image Copy function with IMS compatible JCL.

Example 1: Taking image copies with a single job (multiple-step HASH Check)

The following figure is a JCL example for DBDEFCTL allocation job.

Figure 1. JCL example to allocate DBDEFCTL
//ALLOC    JOB
//ALLOC    EXEC PGM=IDCAMS,DYNAMNBR=10
//SYSPRINT DD SYSOUT=*
//SYSIN    DD *
 DELETE  (SAMPLE.DBDEFCTL) NONVSAM
 SET MAXCC = 0
 ALLOCATE DSNAME('SAMPLE.DBDEFCTL') -
          NEW                       -
          UNIT(SYSDA)               -
          VOL(HPSVOL)               -
          SPACE(10,10) CYLINDER DIR(50)
/*

The following figure is a JCL example for the DBD Analysis program. This sample procedure, FABPDA, is provided in the SHPSSAMP library. The HIDAM database HI00180 has three data set groups, whose DD names are DSG001, DSG002, and DSG003. IX00180 is a HIDAM primary index.

Figure 2. JCL example for DBD Analysis program
//DBDANAL  JOB
//DBDANAL  EXEC FABPDA,
//              PSB='PSBL0180',
//              DBDEFC='SAMPLE.DBDEFCTL'
//PROCCTL  DD *
  PROC TYPE=ALL,HASH=YES
  DATABASE DB=HI00180,DD=DSG001
  DATABASE DB=HI00180,DD=DSG002
  DATABASE DB=HI00180,DD=DSG003
  DATABASE DB=IX00180,DD=PINDEX1,PRIMEDB=HI00180
/*

The following figure is a JCL example for an Image Copy job of IMS HP Image Copy with the HASH Check option for a HIDAM database and the primary index. This sample procedure, FABJIEC, is provided in the SHPSSAMP library. This job takes the image copies of four database data sets in a single job. The HASH records of the four database data sets are combined into one HASH record data set.

Figure 3. Example of Image Copy JCL (single job)
//DBDUMP   JOB
//DBDUMP   EXEC FABJEIC,
//              DBDEFC='SAMPLE.DBDEFCTL',
//              SORTEX='SAMPLE.SORTEX'
//DSG001   DD DISP=OLD,DSN=HI00180.DSG001
//DSG002   DD DISP=OLD,DSN=HI00180.DSG002
//DSG003   DD DISP=OLD,DSN=HI00180.DSG003
//PINDEX1  DD DISP=OLD,DSN=IX00180.PINDEX1
//DBAOUT1  DD DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(5,5)),
//            UNIT=SYSDA,VOL=SER=ICVOL1,
//            DSN=HI00180.DSG001.ICDS1
//DBAOUT2  DD DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(5,5)),
//            UNIT=SYSDA,VOL=SER=ICVOL1,
//            DSN=HI00180.DSG001.ICDS2
//DBAOUT3  DD DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(5,5)),
//            UNIT=SYSDA,VOL=SER=ICVOL1,
//            DSN=HI00180.DSG001.ICDS3
//DBAOUTX  DD DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(5,5)),
//            UNIT=SYSDA,VOL=SER=ICVOL1,
//            DSN=HI00180.DSG001.ICDSX
//* +----1----+----2----+----3----+----4----+----5----+----6----+----7---
//SYSIN     DD *
D1 HI00180  DSG001   DBAOUT1                   Y HASH CHECK ON
D1 HI00180  DSG002   DBAOUT2                   Y HASH CHECK ON
D1 HI00180  DSG003   DBAOUT3                   Y HASH CHECK ON
D1 IX00180  PINDEX1  DBAOUTX                   Y HASH CHECK ON
/*

The following figure is a JCL example for the HASH Evaluation program for a HIDAM database and the primary index.

Figure 4. Example of HASH Evaluation program JCL
//HASHEVEL JOB
//*
//HASHEVAL EXEC FABPHE,
//              DBDEFC='SAMPLE.DBDEFCTL',
//              SORTEX='SAMPLE.SORTEX'

After you complete the HASH evaluation, delete the SORTEX data set.

Example 2: Taking image copies with multiple job steps (multiple-step HASH Check)

The following figure is an example of multiple Image Copy jobs with the HASH Check option for a HIDAM database and the primary index. This sample procedure, FABPIC, is provided in the SHPSSAMP library.

In this example, the HIDAM database HI00180 has three data set groups, whose DD names are DSG001, DSG002, and DSG003. IX00180 is a HIDAM primary index.

The same DBD Analysis program JCL as used in Example 1: Taking image copies with a single job (multiple-step HASH Check) can be used for this case. You can use the already created DBDEFCTL data set. The image copies of four database data sets are taken in multiple jobs. The HASH records are written into separate HASH record data sets.

Figure 5. Example of Image Copy JCL (multiple jobs)
//DBDUMP1  JOB
//DBDUMP   EXEC FABPIC,
//              DBDEFC='SAMPLE.DBDEFCTL',
//              SORTEX='SAMPLE.SORTEX1'
//DSG001   DD DISP=OLD,DSN=HI00180.DSG001
//DBAOUT1  DD DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(5,5)),
//            UNIT=SYSDA,VOL=SER=ICVOL1,
//            DSN=HI00180.DSG001.ICDS1
//* +----1----+----2----+----3----+----4----+----5----+----6----+----7---
//SYSIN     DD *
D1 HI00180  DSG001   DBAOUT1          Y        DUMP SINGLE DS WITH COMP
/* 
//DBDUMP2  JOB
//DBDUMP   EXEC FABPIC,
//              DBDEFC='SAMPLE.DBDEFCTL',
//              SORTEX='SAMPLE.SORTEX2'
//DSG002   DD DISP=OLD,DSN=HI00180.DSG002
//DBAOUT2  DD DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(5,5)),
//            UNIT=SYSDA,VOL=SER=ICVOL1,
//            DSN=HI00180.DSG001.ICDS2
//* +----1----+----2----+----3----+----4----+----5----+----6----+----7---
//SYSIN     DD *
D1 HI00180  DSG002   DBAOUT2          Y        DUMP SINGLE DS WITH COMP
/*

//DBDUMP3  JOB
//DBDUMP   EXEC FABPIC,
//              DBDEFC='SAMPLE.DBDEFCTL',
//              SORTEX='SAMPLE.SORTEX3'
//DSG003   DD DISP=OLD,DSN=HI00180.DSG003
//DBAOUT3  DD DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(5,5)),
//            UNIT=SYSDA,VOL=SER=ICVOL1,
//            DSN=HI00180.DSG001.ICDS3
//* +----1----+----2----+----3----+----4----+----5----+----6----+----7---
//SYSIN     DD *
D1 HI00180  DSG003   DBAOUT3          Y        DUMP SINGLE DS WITH COMP
/*

//DBDUMPX  JOB
//DBDUMP   EXEC FABPIC,
//              DBDEFC='SAMPLE.DBDEFCTL',
//              SORTEX='SAMPLE.SORTEXX'
//PINDEX1  DD DISP=OLD,DSN=IX00180.PINDEX1
//DBAOUTX  DD DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(5,5)),
//            UNIT=SYSDA,VOL=SER=ICVOL1,
//            DSN=HI00180.DSG001.ICDSX
//* +----1----+----2----+----3----+----4----+----5----+----6----+----7---
//SYSIN     DD *
D1 IX00180  PINDEX1  DBAOUTX                   Y HASH CHECK ON
/* 

The following figure is an example of a HASH Evaluation program job for a HIDAM database and the primary index. This sample procedure, FABPHE, is provided in the SHPSSAMP library.

Figure 6. Example of HASH Evaluation program JCL with multiple SORTEXs
//HASHEVEL JOB
//*
//HASHEVAL EXEC FABPHE,
//              DBDEFC='SAMPLE.DBDEFCTL'
//HDPCPRO.SORTIN   DD DISP=SHR,DSN=DSN=SAMPLE.SORTEX1
//                 DD DISP=SHR,DSN=DSN=SAMPLE.SORTEX2
//                 DD DISP=SHR,DSN=DSN=SAMPLE.SORTEX3
//                 DD DISP=SHR,DSN=DSN=SAMPLE.SORTEXX

After you complete the HASH evaluation, delete all SORTEX data sets.

Example 3: Taking image copies with single-step HASH Check

The following figure is an example of an image copy job with single-step HASH Check option for a HIDAM database and the primary index. This sample procedure, FABPICHE, is provided in the SHPSSAMP library.

In this example, the HIDAM database HI00180 has three data set groups, whose DD names are DSG001, DSG002, and DSG003. IX00180 is a HIDAM primary index.

When using the single-step HASH Check option, the DBD analysis and evaluation steps of IMS HP Pointer Checker are not necessary, and all HASH Check processes are done in the IMS HP Image Copy job step.

Figure 7. Example JCL for taking image copies with single-step HASH Check option
//DBDUMP EXEC FABPICHE
//DSG001 DD DISP=OLD,DSN=HI00180.DSG001
//DSG002 DD DISP=OLD,DSN=HI00180.DSG002
//DSG003 DD DISP=OLD,DSN=HI00180.DSG003
//PINDEX1 DD DISP=OLD,DSN=IX00180.PINDEX1
//DBAOUT1 DD DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(5,5)),
// UNIT=SYSDA,VOL=SER=ICVOL1,
// DSN=HI00180.DSG001.ICDS1
//DBAOUT2 DD DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(5,5)),
// UNIT=SYSDA,VOL=SER=ICVOL1,
// DSN=HI00180.DSG001.ICDS2
//DBAOUT3 DD DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(5,5)),
// UNIT=SYSDA,VOL=SER=ICVOL1,
// DSN=HI00180.DSG001.ICDS3
//DBAOUTX DD DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(5,5)),
// UNIT=SYSDA,VOL=SER=ICVOL1,
// DSN=HI00180.DSG001.ICDSX
//* +----1----+----2----+----3----+----4----+----5----+----6----+----7---
//SYSIN DD *                                   
D1 HI00180  DSG001   DBAOUT1                   Y HASH CHECK ON
D1 HI00180  DSG002   DBAOUT2                   Y HASH CHECK ON
D1 HI00180  DSG003   DBAOUT3                   Y HASH CHECK ON
D1 IX00180  PINDEX1  DBAOUTX                   Y HASH CHECK ON
/*