APAR status
Closed as canceled.
Error description
5740xyr00 r310 DB2 The following information is provided for repair of a broken DB2 CATALOG during DB2 V.3 migration. One failure symptom is an RC00E40601 in the CATMAINT step of migration job DSNTIJTC. The cause of this problem was introduced in DB2 2.1 and the fix for it was documented in DB2 2.1 PTF UL47130/PL36601. DB2 2.2 symptoms are documented in APAR PL62497. The only customers who should experience this problem are those who have migrated from DB2 2.1 to 2.2 to 2.3. Customers who have done new installs from DB2 2.2 and up should not experience this problem. ************************************************************ To determine if the problem exists the following selects should be run (the first 2 SELECTs are listed in Admin. Guide on pg. 2-200). If either of the first 2 SELECTS return a row with a count greater than zero, you have a problem. One row will always be returned because a row is returned to indicate a successful run. SELECT #1 will return a count greater than 0, if there is a row(s) in error. SELECT COUNT(*) FROM SYSIBM.SYSKEYS WHERE IXCREATOR = 'SYSIBM' AND IXNAME = 'DSNUCH01' AND COLNAME = 'START_RBA' AND ORDERING = 'A'; SELECT #2 will return a count greater than 0, if there is a row(s) in error. SELECT COUNT(*) FROM SYSIBM.SYSINDEXES WHERE CREATOR = 'SYSIBM' AND NAME = 'DSNDCX01' AND UNIQUERULE = 'D'; SELECT #3 can return multiple rows. SELECT COUNT(*) FROM SYSIBM.SYSCOPY WHERE IBMREQD = 'Y'; SELECT #4 will return a single row with count greater than 0, if there is a row in error. SELECT COUNT(*) FROM SYSIBM.SYSFOREIGNKEYS WHERE CREATOR = 'SYSIBM' AND TBNAME = 'SYSDBAUTH' AND RELNAME = 'DSNDD#AD' AND COLNO = 1; The errors that will cause problems for the customer are either or both of the first two selects. The CATMAINT utility (migration job DSNTIJTC) will fail and the DB2 catalog will not be migrated. You will need to correct the V2.3 catalog before re-running DSNTIJTC. For the third select, rows returned can eventually be deleted via the MODIFY utility. For the fourth select, the particular row and column in error won't be referenced by DB2 except in migration step 3 (DSNTESQ query 54) but can be corrected by the user if desired using the same repair technique as used for the first two SELECTs. For the first two SELECTs and the last, the user must use the REPAIR utility to fix the values in error. They should perform the following steps (note that the Diagnosis Guide will prove to be very valuable in this): 1) DSN1PRNT the SYSDBASE tablespace from database DSNDB06 2) Find the data rows returned by the queries. In a large SYSDBASE, this can take some time, so to make it a bit faster, here are some suggestions: SELECT #1: DSN1PRNT the DSNDXX01 index from database DSNDB06, and find the RID associated with the key for SYSIBM.DSNUCH01. Using that RID, address into the SYSDBASE tablespace, to get to the SYSINDEXES row for that index. In that record, the fourth RID represents the link from SYSINDEXES to SYSKEYS. Follow that to the first SYSKEYS record. From there, the first RID points to the next SYSKEYS record. Do that one more time to get to the third SYSKEYS record. Find the offset that represents the ORDERING column (old value is 'A', new value will be 'D'). Note the page and the offset for use in the REPAIR. SELECT #2: Using the DSN1PRNT of DSNDXX01 (above), find the RID associated with the key for SYSIBM.DSNDCX01. Using that RID, address into SYSDBASE to get to SYSINDEXES for that index. Find the offset that represents the UNIQUERULE column (old value is 'D', new value will be 'U'). Again, note the page and the offset. SELECT #4: DSN1PRNT the DSNDLX01 index from database DSNDB06. Find the RID associated with the key for SYSIBM.SYSDATABASE. Using that RID, address into SYSDBASE to get to a SYSRELS record (should be for link DSNDD#AD). The fourth RID in that record represents the link to SYSFOREIGNKEYS. That RID should point to the record that we are interested in (CREATOR, TBNAME, and NAME should be SYSIBM, SYSDBAUTH, and NAME). Find the offset that represents the COLNO column (old value is x'8001', new value will be x'8003'). Once again, note the page and the offset. 3) When the above is completed (don't worry, you don't need to perform all of these steps at once...the catalog data will not "move", so there's not a concern that the pages and offsets will change), back up the SYSDBASE tablespace, just to be safe (use COPY, DSN1COPY, or whatever). 4) Code the REPAIR utility, making sure to use the VERIFY keyword prior to each REPLACE keyword, to insure the correct values. There should be at most three VERIFY/REPLACE pairs, corresponding to the pages and offsets within SYSDBASE that were noted in step2. You should have something like: REPAIR LOCATE TABLESPACE DSNDB06.SYSDBASE PAGE X'pppp' VERIFY OFFSET X'oooo' DATA X'dddddd' REPLACE OFFSET X'oooo' DATA X'dddddd' LOCATE TABLESPACE DSNDB06.SYSDBASE PAGE X'pppp' VERIFY OFFSET X'oooo' DATA X'dddddd' REPLACE OFFSET X'oooo' DATA X'dddddd' LOCATE TABLESPACE DSNDB06.SYSDBASE PAGE X'pppp' VERIFY OFFSET X'oooo' DATA X'dddddd' REPLACE OFFSET X'oooo' DATA X'dddddd' Execute it. 5) Run the failing queries (from above) again, to verify that the REPAIR was successful, and that the correct values were REPAIRed. If not, look back at the REPAIR job, and un-do the REPAIR if necessary (via another REPAIR). ================================================================ Migration step3 checks for logical consistency in the catalog tables. Many of these queries take a long time to run. The queries are optional, however several of them are highly recommended to ensure a successful catalog migration. We RECOMMEND you run queries 18, 19 and 54 and the following modification to 19. These queries will test for the referential integrity required to create the new table SYSSTATS. This query should be run on all R230 systems before migrating to R310. It checks for the logical correctness for referential integrity between SYSFIELDS and SYSCOLUMNS. These two tables are used in generating new V3 table, SYSSTATS during job DSNTIJTC (CATMAINT utility). SELECT TBCREATOR, TBNAME, NAME FROM SYSIBM.SYSFIELDS FL WHERE NOT EXISTS (SELECT * FROM SYSIBM.SYSCOLUMNS CL WHERE FL.TBCREATOR = CL.TBCREATOR AND FL.TBNAME = CL.TBNAME AND FL.NAME = CL.NAME AND FL.COLNO = CL.COLNO); This query is very similar to query 19 in DSNTESQ. The WHERE clause has been modified in this additional query. You should expect one row returned with a count of 0 indicating a successful run. If more rows are returned, this indicates that there are statistic rows in SYSFIELDS for tables or columns that do not have rows in SYSCOLUMNS. This is a problem which needs to be fixed before running (CATMAINT) DSNTIJTC. To correct this problem, check SYSFIELDS and SYSCOLUMNS for non-matching column names. Correct the names in SYSFIELDS. To change the incorrect rows in SYSFIELDS you can: drop the table (deletes references to the table or database in SYSFIELDS) then rebuild table Job DSNTIJTC (CATMAINT) verifies SYSFIELDS and SYSCOLUMNS and will abend and cause the migration to fail if the V2.3 catalog is not correct. ================================================================
Local fix
Problem summary
Problem conclusion
Temporary fix
Comments
CLOSE FOR DB2INFO RETENTION
APAR Information
APAR number
II07611
Reported component name
PB LIB INFO ITE
Reported component ID
INFOPBLIB
Reported release
001
Status
CLOSED CAN
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
1994-02-11
Closed date
1997-01-13
Last modified date
1997-01-13
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Applicable component levels
[{"Business Unit":{"code":null,"label":null},"Product":{"code":"SG19O","label":"APARs - MVS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEPEK","label":"Db2 for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]
Document Information
Modified date:
14 December 2020