When invoking Database Analyzer for IMS through Database Copier in order to analyze the created image copy, the following error messages are being issued:
DBA0042E ERROR IN ROOT CI = 3 (HEX 000003), RBA OF CI = 16,384 (HEX 00004000). DBA0020I THE ERROR WAS DETECTED AT CI OFFSET 8,262 (HEX 2046). DBA0010I THE SEGMENT STARTS PAST THE END OF THE BLOCK.
The problem does not occur when Database Analyzer for IMS is executed standalone against the database.
What is causing the errors?
In this particular scenario, it is the Database Analyzer control statements that are being passed via the DBACTRL DD, that are causing the errors.
//DBOCTRL DD * CONTROL STATEMENTS FUNCTION(COPY) - DBDNAME(dbname ) - DDNAME(ddname) CHECK(Y) //DBACTRL DD * CONTROL STATEMENTS FUNCTION(ANALYZE) - DBDNAME(dbname) - DDNAME(ddname) - REPORTS(DBSUMMARY,FREESPACESTATS,ROOTPLACEMENT,SUMMARYREPORT)
When Database Analyzer for IMS is invoked by Database Copier, using the CHECK or DETAILREPORT control statements, Database Analyzer obtains the database details it needs from the image copy header. The DBDNAME and DDNAME control statements specified in the DBACTRL DD sysin, conflict with the fact that we want the analysis performed against the image copy, rather than the database dataset.
Removing the DBDNAME and DDNAME control statements from the DBACTRL DD sysin solves this problem:
//DBOCTRL DD * CONTROL STATEMENTS FUNCTION(COPY) - DBDNAME(dbname ) - DDNAME(ddname) CHECK(Y) //DBACTRL DD * CONTROL STATEMENTS FUNCTION(ANALYZE) - REPORTS(DBSUMMARY,FREESPACESTATS,ROOTPLACEMENT,SUMMARYREPORT)