A fix is available
APAR status
Closed as program error.
Error description
After migration to Db2 V12 CHECK DATA fails with msgDSNU728I. CHECK DATA TABLESPACE DBBASE.TSBASE1 SCOPE ALL FOR EXCEPTION IN SYSBASE.BASE_TABLE4 USE SYSEXCP.EXCP_TABLE4 IN SYSBASE.BASE_TABLE3 USE SYSEXCP.EXCP_TABLE3 IN SYSBASE.BASE_TABLE2 USE SYSEXCP.EXCP_TABLE2 IN SYSBASE.BASE_TABLE1 USE SYSEXCP.EXCP_TABLE1 DELETE YES LOG YES EXCEPTIONS 0 DSNU728I DSNUKINE - INVALID EXCEPTION TABLE SYSEXCP.EXCP_TABLE1 FOR SYSBASE.BASE_TABLE1 . The exception TBs are all defined with the optional columns: - RID (type CHAR n) - TIME (type TIMESTAMP) Base TS1 of SYSBASE.BASE_TABLE1 is defined with DSSIZE. So column RID CHAR(5) for EXCP_TABLE1 would be appropriate according the Db2 documentation. But CHECK DATA fails with DSNU728I. If EXCP_TABLE1 is defined with RID CHAR(7) then CHECK DATA runs successfully (no DSNU728I). This is the workaround.
Local fix
BYPASS/CIRCUMVENTION: Define the exception TABLE with RID CHAR(7) or omit the RID column.
Problem summary
**************************************************************** * USERS AFFECTED: * * All Db2 12 for z/OS users of the CHECK DATA * * utility with exception tables * **************************************************************** * PROBLEM DESCRIPTION: * * 1. MSGDSNU728I INVALID EXCEPTION TABLE * * and RC8 during a CHECK DATA utility * * with exception tables with a column * * for the RID when there is a mismatch * * between the number of table spaces and * * exception tables specified, or if the * * order between table spaces and * * exception tables differs and * * underlying dependent tables require * * varying RID column definitions in * * their exception tables. * * 2. INCORROUT for RID entries in * * exception tables with 7-byte CHAR * * columns when they are used in * * conjunction with dependent tables in * * older, non 7-byte, non UTS PBR RPN, * * non XML/LOB table spaces. * **************************************************************** * RECOMMENDATION: * * Apply corrective PTF when available * **************************************************************** 1. The CHECK DATA utility issued message DSNU728I - INVALID EXCEPTION TABLE exceptiontablename FOR dependenttablename and ended with RC8 in the following two scenarios. e.g. Where only DB.T1 dependent table and DBEX.T1 exception table reside in table space DB.TS1 and the other tables listed reside in table spaces not specified on the CHECK DATA statement. CHECK DATA TABLESPACE DB.TS1 SCOPE ALL FOR EXCEPTION IN DB.T4 USE DBEX.T4 IN DB.T3 USE DBEX.T3 IN DB.T2 USE DBEX.T2 IN DB.T1 USE DBEX.T1 DELETE YES LOG YES EXCEPTIONS 0 e.g. Where the order of the list of exception tables differs from the order of the table spaces specified on the CHECK DATA statement and underlying dependent tables' table spaces use different RID sizes. CHECK DATA TABLESPACE DB3.TS2 <-7 byte RID spec TABLESPACE DB3.TS3 <-5 byte RID spec SCOPE ALL FOR EXCEPTION IN DB3.T3 USE DB3.T3EX5 <-5 byte RID spec IN DB3.T2 USE DB3.T2EX7 <-7 byte RID spec DELETE NO 2. INCORROUT for the CHAR(7) RID column of an exception table when a referential integrity violation is written and the dependent table is located in an older table space without 7-byte RIDs. e.g. CHECK DATA TABLESPACE DB.TS2 SCOPE ALL <-5 byte RID spec FOR EXCEPTION IN DB.T2 USE DBEX.T2 <-7 byte RID spec DELETE YES Note that message DSNU733I - ROW (RID=X'00000000002201') HAS NO PARENT FOR DB.T2.FK1 in the job output will contain the correct RID, but a SELECT from the exception table will show the invalid RID - 00002201000000.
Problem conclusion
CHECK DATA code has been modified to -properly determine the necessary RID requirements from the dependent table that will be used for the specified exception table -query the exception table's column specification to shift the RID value appropriately for non 7-byte RID use cases
Temporary fix
Comments
APAR Information
APAR number
PH35282
Reported component name
DB2 OS/390 & Z/
Reported component ID
5740XYR00
Reported release
C10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2021-03-12
Closed date
2021-06-10
Last modified date
2022-03-30
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UI75850
Modules/Macros
DSNUKRDY DSNUKRDN DSNUKINE
Fix information
Fixed component name
DB2 OS/390 & Z/
Fixed component ID
5740XYR00
Applicable component levels
RC10 PSY UI75850
UP21/06/18 P F106
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEPEK","label":"DB2 for z\/OS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"12.0"}]
Document Information
Modified date:
31 March 2022