Example 10: CHECK DATA for user-defined RI using saved rules
CHECK PLUS writes five foreign keys in violation of the SQLDEL-formatted discard data set. You can run the SQL DELETE statements to delete the rows that are in violation. You can use SPUFI, QMF, DSNTEP2, DSNTIAD, or the SQL batch execution program that CHECK PLUS provides. For detailed information about this program and an example run, see SQL-batch-execution-program.
Command options for example 10
Command options used in JCL | Description |
---|---|
TABLESPACE | Identifies the table spaces to check |
SCOPE ALL | Checks all rows of all specified tables |
CONSTRAINT | Identifies the table check constraint to check |
DISCARDFMT SQLDEL | Produces one SQL DELETE statement per distinct foreign key in violation |
JCL for example 10
// JOBCARD
//*===================================================================
//*==== CHECK DATA for user-defined RI using saved rules ===
//*================================================================*
//* Use your DB2 subsystem name inplace of "DB2SYS" parm parameter. *
//* Use your DB2 product install libraries for STEPLIBS ; *
//* PRODUCT.LIBRARIES *
//* DB2.DSNEXIT *
//* DB2.DSNLOAD *
//*================================================================*
//CHECK10 EXEC PGM=ACKUMAIN,
// PARM=(DB2SYS,ACKEX10,NEW,,'MSGLEVEL(1)')
//STEPLIB DD DISP=SHR,DSN=PRODUCT.LIBRARIES
// DD DISP=SHR,DSN=DB2.DSNEXIT
// DD DISP=SHR,DSN=DB2.DSNLOAD
//SYSIN DD *
CHECK DATA TABLESPACE ACKRIDB1.ACKRITS4
SCOPE ALL
CONSTRAINT (ACK.ACKRITB4.EX8T2FK1)
DISCARDFMT SQLDEL
/*
//SYSPRINT DD DSN=ACK.EXAMPL10.SYSPRINT,
// UNIT=SYSDA,SPACE=(CYL,(1,1)),DISP=(NEW,CATLG)
//UTPRINT DD SYSOUT=*
//SYSDISC DD DSN=ACK.EXAMPL10.SYSDISC,
// DISP=(NEW,CATLG,CATLG),
// UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSERR DD DSN=ACK.EXAMPL10.SYSERR,
// DISP=(NEW,CATLG,CATLG),
// UNIT=WORK,SPACE=(CYL,(1,1))
//*===================================================================
//*==== CHECK DATA for user-defined RI using saved rules ===
//*================================================================*
//* Use your DB2 subsystem name inplace of "DB2SYS" parm parameter. *
//* Use your DB2 product install libraries for STEPLIBS ; *
//* PRODUCT.LIBRARIES *
//* DB2.DSNEXIT *
//* DB2.DSNLOAD *
//*================================================================*
//CHECK10 EXEC PGM=ACKUMAIN,
// PARM=(DB2SYS,ACKEX10,NEW,,'MSGLEVEL(1)')
//STEPLIB DD DISP=SHR,DSN=PRODUCT.LIBRARIES
// DD DISP=SHR,DSN=DB2.DSNEXIT
// DD DISP=SHR,DSN=DB2.DSNLOAD
//SYSIN DD *
CHECK DATA TABLESPACE ACKRIDB1.ACKRITS4
SCOPE ALL
CONSTRAINT (ACK.ACKRITB4.EX8T2FK1)
DISCARDFMT SQLDEL
/*
//SYSPRINT DD DSN=ACK.EXAMPL10.SYSPRINT,
// UNIT=SYSDA,SPACE=(CYL,(1,1)),DISP=(NEW,CATLG)
//UTPRINT DD SYSOUT=*
//SYSDISC DD DSN=ACK.EXAMPL10.SYSDISC,
// DISP=(NEW,CATLG,CATLG),
// UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSERR DD DSN=ACK.EXAMPL10.SYSERR,
// DISP=(NEW,CATLG,CATLG),
// UNIT=WORK,SPACE=(CYL,(1,1))
SYSPRINT for example 10
1 ***** B M C C H E C K P L U S F O R D B 2 V13R1.00 *****
(C) COPYRIGHT 1993 - 2022 BMC SOFTWARE, INC.
CHECK PLUS TECHNOLOGY IS PROTECTED BY ONE OR MORE OF THE FOLLOWING U.S. PATENTS: 5,579,515 AND 6,163,783
-BMC50001I UTILITY EXECUTION STARTING 2/28/2022 10:07:08 ...
BMC50002I UTILITY ID = 'ACKEX10'. DB2 SUBSYSTEM ID = 'DEJM'. OPTION MODULE = 'ACK$OPTS'.
BMC50471I z/OS 2.4.0,PID=HBB77C0,DFSMS FOR Z/OS=2.4.0,DB2=12.1.510
BMC50471I REGION=0M,BELOW 16M=8.6M,ABOVE 16M=1,004.6M,IEFUSI=NO,CPUs=7,GPs=5,zIIPs=2
BMC50471I MEMLIMIT=15.9E,AVAILABLE=15.9E,MEMLIMIT SET BY:REGION=0
BMC50471I SMFID=DB2B,JOBID=J0021953,JOB=ACKEX10,STEP=CHECK10,CPU=8561-615 (z15)/1.71,76.0G
0
BMC50471I CHECK PLUS FOR DB2--V13.01.00 BASE
BMC50471I NO MAINTENANCE TO REPORT
BMC50471I DB2 UTILITIES COMMON CODE--V13.01.00 BASE
BMC50471I NO MAINTENANCE TO REPORT
BMC50471I SOLUTION COMMON CODE--V13.01.00 BASE
BMC50471I MAINT: BPJ1541 BPJ1713 BPJ2211
BMC50471I BMCSORT ENGINE--V02.04.01
BMC50471I MAINT: BPJ0691 BPJ0718 BPJ0881 BPJ0922 BPJ0996 BPJ1164 BPJ1309 BPJ1386 BPJ1497 BPJ1594 BPJ1724 BPJ1809
BMC50471I BPJ1833 BPJ1891 BPJ1905 BPJ2109 BPJ2232 BPJ2297
BMC50471I BMC STATS API--V13.01.00 BASE
BMC50471I NO MAINTENANCE TO REPORT
BMC50471I EXTENDED BUFFER MANAGER--V06.02.01
BMC50471I MAINT: BPE0443 BPE0445 BPE0447 BPE0449 BPE0450 BPE0451 BPE0452 BPE0455 BPE0456 BPE0457 BPE0460 BPE0463
BMC50471I BPE0467 BPE0468 BPE0469 BPE0473 BPE0474 BPE0475 BPE0479 BPE0480 BPE0482 BPE0487 BPE0488 BPE0489
BMC50471I BPE0493 BPE0497 BPE0498 BPE0501 BPE0503 BPE0507 BPE0512 BPE0513 BPE0517 BPE0518 BPE0519 BPE0523
BMC50471I BPE0524 BPE0527 BPE0528 BPE0530 BPE0531 BPE0534 BPE0535 BPE0540 BPE0541 BPE0542 BPE0545 BPE0549
BMC50471I BPE0551 BPE0552 BPE0555 BPE0556 BPE0557 BPE0560
0
BMC50471I DRNDELAY=3 LOADDECP=NO SQLDELAY=3
BMC50471I DRNRETRY=10 LOCKROW=YES SQLRETRY=100
BMC50471I DRNWAIT=NONE MAXP=5 UXSTATE=SUP
BMC50471I DSER=NO MSGLEVEL=1 WBUFFS=20
BMC50471I DSPLOCKS=NONE OPNDB2ID=YES WORKUNIT=SYSALLDA
BMC50471I FILECHK=WARN PLAN=ACK1310T XBLKS=3
BMC50471I FORCE_AT=(START,3) SMAX=16 ZIIP=ENABLED
BMC50471I FORCE_RPT=NO SMCORE=(0K,0K)
BMC50471I FORCE=NONE SORTNUM=32
0
BMC50471I DB2 DSNHDECP MODULE SETTINGS:
BMC50471I VERSION = 1210
BMC50471I SUBSYSTEM DEFAULT = DEJM
BMC50471I CHARACTER SET = ALPHANUM
BMC50471I DATE FORMAT = USA
BMC50471I TIME FORMAT = USA
BMC50471I LOCAL DATE LENGTH = 0
BMC50471I LOCAL TIME LENGTH = 0
BMC50471I DECIMAL POINT = PERIOD
BMC50471I DECIMAL ARITHMETIC = 15
BMC50471I DELIMITER = DEFAULT
BMC50471I SQL DELIMITER = DEFAULT
BMC50471I ENCODING SCHEME = EBCDIC
BMC50471I APPL. ENCODING SCHEME = EBCDIC
BMC50471I MIXED = NO
BMC50471I EBCDIC CCSID = (37,65534,65534)
BMC50471I ASCII CCSID = (819,65534,65534)
BMC50471I UNICODE CCSID = (367,1208,1200)
BMC50471I IMPLICIT TIME ZONE = CURRENT (-06:00)
BMC50658I DB2 CURRENT FUNCTION LEVEL IS V12R1M509
BMC50659I DB2 CATALOG LEVEL IS V12R1M509
BMC50660I DB2 HIGHEST ACTIVATED FUNCTION LEVEL IS V12R1M509
BMC50661I DB2 CODE LEVEL IS V12R1M510
BMC50471I BMC_BMCUTIL ='BMCUTIL.CMN_BMCUTIL'
BMC50471I BMC_BMCSYNC ='BMCUTIL.CMN_BMCSYNC'
BMC50471I BMC_BMCHIST ='BMCUTIL.CMN_BMCHIST'
BMC50471I BMC_BMCRELS ='ACKIB2.BMCRELS'
BMC50471I BMC_BMCFKEY ='ACKIB2.BMCFKEY'
BMC50471I BMC_BMCPKEY ='ACKIB2.BMCPKEY'
BMC50471I BMC_BMCKEYS ='ACKIB2.BMCKEYS'
0
0
BMC50102I CHECK DATA TABLESPACE ACKRIDB1.ACKRITS4
BMC50102I SCOPE ALL
BMC50102I CONSTRAINT (ACK.ACKRITB4.EX8T2FK1)
BMC50102I DISCARDFMT SQLDEL
BMC50041I 0: ZIIP ENABLED (0) USING XBM SUBSYSTEM XBMB
BMC50004I UTILINIT PHASE COMPLETE. ELAPSED TIME = 00:00:00
BMC50394I UNABLE TO LOCATE SORT WORK DATASETS, DDNAME = 'SORTWKNN'
BMC50474I BELOW 16M = 8348K, ABOVE 16M = 1021784K, CPUS = 5
BMC52601I STARTING CHECK DATA FOR THE FOLLOWING :
BMC52602I PK FOR TABLE ACK.ACKRITB5 USING IX.ACK.ACKRIX05
BMC52603I FK ACK.ACKRITB4.EX8T2FK1 USING TS.ACKRIDB1.ACKRITS4
BMC52230I MAX TASKS = 1, MAX PARTS/TASK = 2, SORTWKS/TASK = 32, MAX OPEN PARTS/TASK = 2, MAX INDEXES/TASK = 2
BMC50894I PAGE EXTERNALIZATION PROCESS STARTING AT 2/28/2022 10:07:09
BMC50650I ESTABLISHING A POINT OF CONSISTENCY FOR:
BMC50651I SPACE ACKRIDB1.ACKRITS4 PART(0) PSID(0014)
BMC50651I SPACE ACKRIDB1.ACKRIX05 PART(0) PSID(001C)
BMC50895I PAGE EXTERNALIZATION PROCESS COMPLETE. ELAPSED TIME = 00:00:00
BMC52286I 1: CHECKING OF DATASET 'DEJMCAT.DSNDBD.ACKRIDB1.ACKRIX05.I0001.A001' READ 5 PAGES
BMC52286I 1: CHECKING OF DATASET 'DEJMCAT.DSNDBD.ACKRIDB1.ACKRITS4.I0001.A001' READ 6 PAGES
BMC50481I 1: SORT COMPLETE. ELAPSED TIME = 00:00:00
BMC50481I 1: CHECK TASK COMPLETE. ELAPSED TIME = 00:00:00
BMC52606I FK ACK.ACKRITB4.EX8T2FK1 , 100 KEYS CHECKED, 5 VIOLATIONS FOUND
BMC50476I DDNAME = SYSERR, I/OS = 2, I/O WAITS = 2, RDB LOCK WAITS = 0
BMC52288I CHECK ERROR SUMMARY: PAGE EXCEPTIONS-0, CONSTRAINT VIOLATIONS-5
BMC50004I CHECK PHASE COMPLETE. ELAPSED TIME = 00:00:00
BMC52610I CREATOR.TABLE.CONSTRAINT ROW-ID KEY
BMC52611W ACK.ACKRITB4.EX8T2FK1 0000060100 '05','HK'
BMC52611W ACK.ACKRITB4.EX8T2FK1 0000060200 '05','OM'
BMC52611W ACK.ACKRITB4.EX8T2FK1 0000060300 '05','UB'
BMC52611W ACK.ACKRITB4.EX8T2FK1 0000060400 '05','WX'
BMC52611W ACK.ACKRITB4.EX8T2FK1 0000060900 '13','GI'
BMC50476I DDNAME = SYSERR, I/OS = 1, I/O WAITS = 1, RDB LOCK WAITS = 0
BMC50476I DDNAME = SYSDISC, I/OS = 1, I/O WAITS = 1, RDB LOCK WAITS = 0
BMC50004I FIXRI PHASE COMPLETE. ELAPSED TIME = 00:00:00
BMC50041I 0: ZIIP NOT ENABLED (0) USING XBM SUBSYSTEM XBMB
0BMC50006I UTILITY EXECUTION COMPLETE, RETURN CODE = 4
(C) COPYRIGHT 1993 - 2022 BMC SOFTWARE, INC.
CHECK PLUS TECHNOLOGY IS PROTECTED BY ONE OR MORE OF THE FOLLOWING U.S. PATENTS: 5,579,515 AND 6,163,783
-BMC50001I UTILITY EXECUTION STARTING 2/28/2022 10:07:08 ...
BMC50002I UTILITY ID = 'ACKEX10'. DB2 SUBSYSTEM ID = 'DEJM'. OPTION MODULE = 'ACK$OPTS'.
BMC50471I z/OS 2.4.0,PID=HBB77C0,DFSMS FOR Z/OS=2.4.0,DB2=12.1.510
BMC50471I REGION=0M,BELOW 16M=8.6M,ABOVE 16M=1,004.6M,IEFUSI=NO,CPUs=7,GPs=5,zIIPs=2
BMC50471I MEMLIMIT=15.9E,AVAILABLE=15.9E,MEMLIMIT SET BY:REGION=0
BMC50471I SMFID=DB2B,JOBID=J0021953,JOB=ACKEX10,STEP=CHECK10,CPU=8561-615 (z15)/1.71,76.0G
0
BMC50471I CHECK PLUS FOR DB2--V13.01.00 BASE
BMC50471I NO MAINTENANCE TO REPORT
BMC50471I DB2 UTILITIES COMMON CODE--V13.01.00 BASE
BMC50471I NO MAINTENANCE TO REPORT
BMC50471I SOLUTION COMMON CODE--V13.01.00 BASE
BMC50471I MAINT: BPJ1541 BPJ1713 BPJ2211
BMC50471I BMCSORT ENGINE--V02.04.01
BMC50471I MAINT: BPJ0691 BPJ0718 BPJ0881 BPJ0922 BPJ0996 BPJ1164 BPJ1309 BPJ1386 BPJ1497 BPJ1594 BPJ1724 BPJ1809
BMC50471I BPJ1833 BPJ1891 BPJ1905 BPJ2109 BPJ2232 BPJ2297
BMC50471I BMC STATS API--V13.01.00 BASE
BMC50471I NO MAINTENANCE TO REPORT
BMC50471I EXTENDED BUFFER MANAGER--V06.02.01
BMC50471I MAINT: BPE0443 BPE0445 BPE0447 BPE0449 BPE0450 BPE0451 BPE0452 BPE0455 BPE0456 BPE0457 BPE0460 BPE0463
BMC50471I BPE0467 BPE0468 BPE0469 BPE0473 BPE0474 BPE0475 BPE0479 BPE0480 BPE0482 BPE0487 BPE0488 BPE0489
BMC50471I BPE0493 BPE0497 BPE0498 BPE0501 BPE0503 BPE0507 BPE0512 BPE0513 BPE0517 BPE0518 BPE0519 BPE0523
BMC50471I BPE0524 BPE0527 BPE0528 BPE0530 BPE0531 BPE0534 BPE0535 BPE0540 BPE0541 BPE0542 BPE0545 BPE0549
BMC50471I BPE0551 BPE0552 BPE0555 BPE0556 BPE0557 BPE0560
0
BMC50471I DRNDELAY=3 LOADDECP=NO SQLDELAY=3
BMC50471I DRNRETRY=10 LOCKROW=YES SQLRETRY=100
BMC50471I DRNWAIT=NONE MAXP=5 UXSTATE=SUP
BMC50471I DSER=NO MSGLEVEL=1 WBUFFS=20
BMC50471I DSPLOCKS=NONE OPNDB2ID=YES WORKUNIT=SYSALLDA
BMC50471I FILECHK=WARN PLAN=ACK1310T XBLKS=3
BMC50471I FORCE_AT=(START,3) SMAX=16 ZIIP=ENABLED
BMC50471I FORCE_RPT=NO SMCORE=(0K,0K)
BMC50471I FORCE=NONE SORTNUM=32
0
BMC50471I DB2 DSNHDECP MODULE SETTINGS:
BMC50471I VERSION = 1210
BMC50471I SUBSYSTEM DEFAULT = DEJM
BMC50471I CHARACTER SET = ALPHANUM
BMC50471I DATE FORMAT = USA
BMC50471I TIME FORMAT = USA
BMC50471I LOCAL DATE LENGTH = 0
BMC50471I LOCAL TIME LENGTH = 0
BMC50471I DECIMAL POINT = PERIOD
BMC50471I DECIMAL ARITHMETIC = 15
BMC50471I DELIMITER = DEFAULT
BMC50471I SQL DELIMITER = DEFAULT
BMC50471I ENCODING SCHEME = EBCDIC
BMC50471I APPL. ENCODING SCHEME = EBCDIC
BMC50471I MIXED = NO
BMC50471I EBCDIC CCSID = (37,65534,65534)
BMC50471I ASCII CCSID = (819,65534,65534)
BMC50471I UNICODE CCSID = (367,1208,1200)
BMC50471I IMPLICIT TIME ZONE = CURRENT (-06:00)
BMC50658I DB2 CURRENT FUNCTION LEVEL IS V12R1M509
BMC50659I DB2 CATALOG LEVEL IS V12R1M509
BMC50660I DB2 HIGHEST ACTIVATED FUNCTION LEVEL IS V12R1M509
BMC50661I DB2 CODE LEVEL IS V12R1M510
BMC50471I BMC_BMCUTIL ='BMCUTIL.CMN_BMCUTIL'
BMC50471I BMC_BMCSYNC ='BMCUTIL.CMN_BMCSYNC'
BMC50471I BMC_BMCHIST ='BMCUTIL.CMN_BMCHIST'
BMC50471I BMC_BMCRELS ='ACKIB2.BMCRELS'
BMC50471I BMC_BMCFKEY ='ACKIB2.BMCFKEY'
BMC50471I BMC_BMCPKEY ='ACKIB2.BMCPKEY'
BMC50471I BMC_BMCKEYS ='ACKIB2.BMCKEYS'
0
0
BMC50102I CHECK DATA TABLESPACE ACKRIDB1.ACKRITS4
BMC50102I SCOPE ALL
BMC50102I CONSTRAINT (ACK.ACKRITB4.EX8T2FK1)
BMC50102I DISCARDFMT SQLDEL
BMC50041I 0: ZIIP ENABLED (0) USING XBM SUBSYSTEM XBMB
BMC50004I UTILINIT PHASE COMPLETE. ELAPSED TIME = 00:00:00
BMC50394I UNABLE TO LOCATE SORT WORK DATASETS, DDNAME = 'SORTWKNN'
BMC50474I BELOW 16M = 8348K, ABOVE 16M = 1021784K, CPUS = 5
BMC52601I STARTING CHECK DATA FOR THE FOLLOWING :
BMC52602I PK FOR TABLE ACK.ACKRITB5 USING IX.ACK.ACKRIX05
BMC52603I FK ACK.ACKRITB4.EX8T2FK1 USING TS.ACKRIDB1.ACKRITS4
BMC52230I MAX TASKS = 1, MAX PARTS/TASK = 2, SORTWKS/TASK = 32, MAX OPEN PARTS/TASK = 2, MAX INDEXES/TASK = 2
BMC50894I PAGE EXTERNALIZATION PROCESS STARTING AT 2/28/2022 10:07:09
BMC50650I ESTABLISHING A POINT OF CONSISTENCY FOR:
BMC50651I SPACE ACKRIDB1.ACKRITS4 PART(0) PSID(0014)
BMC50651I SPACE ACKRIDB1.ACKRIX05 PART(0) PSID(001C)
BMC50895I PAGE EXTERNALIZATION PROCESS COMPLETE. ELAPSED TIME = 00:00:00
BMC52286I 1: CHECKING OF DATASET 'DEJMCAT.DSNDBD.ACKRIDB1.ACKRIX05.I0001.A001' READ 5 PAGES
BMC52286I 1: CHECKING OF DATASET 'DEJMCAT.DSNDBD.ACKRIDB1.ACKRITS4.I0001.A001' READ 6 PAGES
BMC50481I 1: SORT COMPLETE. ELAPSED TIME = 00:00:00
BMC50481I 1: CHECK TASK COMPLETE. ELAPSED TIME = 00:00:00
BMC52606I FK ACK.ACKRITB4.EX8T2FK1 , 100 KEYS CHECKED, 5 VIOLATIONS FOUND
BMC50476I DDNAME = SYSERR, I/OS = 2, I/O WAITS = 2, RDB LOCK WAITS = 0
BMC52288I CHECK ERROR SUMMARY: PAGE EXCEPTIONS-0, CONSTRAINT VIOLATIONS-5
BMC50004I CHECK PHASE COMPLETE. ELAPSED TIME = 00:00:00
BMC52610I CREATOR.TABLE.CONSTRAINT ROW-ID KEY
BMC52611W ACK.ACKRITB4.EX8T2FK1 0000060100 '05','HK'
BMC52611W ACK.ACKRITB4.EX8T2FK1 0000060200 '05','OM'
BMC52611W ACK.ACKRITB4.EX8T2FK1 0000060300 '05','UB'
BMC52611W ACK.ACKRITB4.EX8T2FK1 0000060400 '05','WX'
BMC52611W ACK.ACKRITB4.EX8T2FK1 0000060900 '13','GI'
BMC50476I DDNAME = SYSERR, I/OS = 1, I/O WAITS = 1, RDB LOCK WAITS = 0
BMC50476I DDNAME = SYSDISC, I/OS = 1, I/O WAITS = 1, RDB LOCK WAITS = 0
BMC50004I FIXRI PHASE COMPLETE. ELAPSED TIME = 00:00:00
BMC50041I 0: ZIIP NOT ENABLED (0) USING XBM SUBSYSTEM XBMB
0BMC50006I UTILITY EXECUTION COMPLETE, RETURN CODE = 4
Discard data set for example 10
DELETE FROM ACK.ACKRITB4 WHERE COL01_CHAR_2 = '05' AND COL02_CHAR_2 = 'HK' ;
DELETE FROM ACK.ACKRITB4 WHERE COL01_CHAR_2 = '05' AND COL02_CHAR_2 = 'OM' ;
DELETE FROM ACK.ACKRITB4 WHERE COL01_CHAR_2 = '05' AND COL02_CHAR_2 = 'UB' ;
DELETE FROM ACK.ACKRITB4 WHERE COL01_CHAR_2 = '05' AND COL02_CHAR_2 = 'WX' ;
DELETE FROM ACK.ACKRITB4 WHERE COL01_CHAR_2 = '13' AND COL02_CHAR_2 = 'GI' ;
DELETE FROM ACK.ACKRITB4 WHERE COL01_CHAR_2 = '05' AND COL02_CHAR_2 = 'OM' ;
DELETE FROM ACK.ACKRITB4 WHERE COL01_CHAR_2 = '05' AND COL02_CHAR_2 = 'UB' ;
DELETE FROM ACK.ACKRITB4 WHERE COL01_CHAR_2 = '05' AND COL02_CHAR_2 = 'WX' ;
DELETE FROM ACK.ACKRITB4 WHERE COL01_CHAR_2 = '13' AND COL02_CHAR_2 = 'GI' ;
Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*