Concurrently processing multiple data sets
The following figure shows the asynchronous processing of multiple data sets.
Asynchronous hash checking
//STEP1 EXEC PGM=PCPCHECK,REGION=0M
//STEPLIB DD DSN=bmc.xxx.load,DISP=SHR
// DD DSN=IMS.RESLIB,DISP=SHR
//DFSRESLB DD DSN=IMS.RESLIB,DISP=SHR
//IMS DD DSN=IMS.DBDLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//PLUSLIST DD SYSOUT=*
//PCPSYSIN DD *
GLBL TYPE(HASH) ASYNC(Y)
CHECK DBD(HISAMDB) WORKDDN(WORK01)
CHECK DBD(HDAMDB) DSG(HDAMDD1) WORKDDN(WORK02)
CHECK DBD(HDAMDB) DSG(HDAMDD2) WORKDDN(WORK03)
CHECK DBD(SINDXDB) WORKDDN(WORK01)
CHECK DBD(HIDAMDB) WORKDDN(WORK02)
CHECK DBD(PINDXDB) WORKDDN(WORK03)
/*
//HISAMPRI DD DSN=PCP.HISAMDB.HISAMPRI,DISP=SHR
//HISAMOVF DD DSN=PCP.HISAMDB.HISAMOVF,DISP=SHR
//HDAMDD1 DD DSN=PCP.HDAMDB.HDAMDD1,DISP=SHR
//HDAMDD2 DD DSN=PCP.HDAMDB.HDAMDD2,DISP=SHR
//SINDXPRI DD DSN=PCP.SINDXDB.SINDXPRI,DISP=SHR
//HIDAMDD1 DD DSN=PCP.HIDAMDB.HIDAMDD1,DISP=SHR
//PINDXPRI DD DSN=PCP.PINDXDB.PINDXPRI,DISP=SHR
The figure Asynchronous hash checking shows the asynchronous processing of multiple data sets as follows:
- No data sets are dynamically allocated.
- The database data sets are used for input.
- PCP processes some data sets concurrently:
WORK02 -HDAMDD1----------->HIDAMDD1------->
WORK03 -HDAMDD2-------->PINDXPRI------->
This diagram means PCP begins concurrently reading HISAMPRI, HDAMDD1, and HDAMDD2. When it finishes reading HISAMPRI, it begins reading HISAMOVF. When it finishes reading HISAMOVF, it begins reading SINDXPRI. When it finishes reading HDAMDD1, it begins reading HIDAMDD1. When it finishes reading HDAMDD2, it begins reading PINDXPRI.
You must set the ASYNC option to Y to indicate that you want asynchronous processing. This example uses the DSG and WORKDDN options solely to control asynchronous processing. In this case, the DSG option does not imply a partial scan; the Hash Checking technique does not support partial checking. PCP uses the WORKDDN values to label the concurrent asynchronous scanning tasks and assign the indicated data sets to the asynchronous scanning tasks; no WORKnn files are actually used.