IBM Support

PH35282: CHECK DATA FAILS WITH DSNU728I (INVALID EXCEPTION TABLE <EXCP TB> FOR <BASE TB>) AND ALSO DSNU733I

A fix is available

Subscribe

You can track all active APARs for this component.

 

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