Repairing HALDB partition reorganization numbers and duplicate ILKs

If you identify corrupted HALDB partition reorganization numbers, duplicate ILKs, or potentially duplicate ILKs in your HALDB databases, you can repair them by running the HD Pointer Checker utility and then the ILK Repair utility of IMS Database Repair Facility.

Before you begin

This procedure is for repairing corrupted HALDB partition reorganization numbers, duplicate ILKs, and potentially duplicate ILKs that are detected by the DUPILKCHK=YES option. Run the HD Pointer Checker utility with the DUPILKCHK=YES option and ensure that such errors are reported.

About this task

This task repairs corrupted HALDB partition reorganization numbers, duplicate ILKs, and potentially duplicate ILKs in the corrupted HALDB databases, in their logically related databases, and in their PSINDEX databases.

HALDB partition reorganization numbers are stored in data set group A of the partitions. If a HALDB partition reorganization number becomes corrupted, it might cause duplicate ILKs or potentially duplicate ILKs that can lead to data loss. Therefore, it is important to repair corrupted HALDB partition reorganization numbers and ILKs when they are found.

Procedure

  1. Take offline the corrupted HALDB databases, their logically related databases, and their PSINDEX databases, and stop using the databases.
  2. Correct the pointer errors and T2 errors, if any, in the HALDB databases.

    If the HALDB databases have pointer errors or T2 errors other than corrupted HALDB partition reorganization numbers, duplicate ILKs, or potentially duplicate ILKs, correct these errors.

    If the databases were reorganized, restore the databases to the state that they were in before the database reorganization, and then continue with the repair process.

  3. Create image copies of the corrupted HALDB databases, their logically related databases, and their PSINDEX databases.

    You can use these image copies to recover the databases if a problem occurs during the repair process.

  4. Run the HD Pointer Checker utility with the REPAIRILK=YES option for the HALDB databases.

    The HD Pointer Checker utility generates repair information records for the HALDB databases in the FABPILK data set.

    To enable the REPAIRILK=YES option, the following conditions must be met:
    • The FABPILK DD statement is specified in the HD Pointer Checker utility JCL.
    • TYPE=ALL, HASH=NO, EPSCHK=YES, and DUPILKCHK=YES are all specified on the PROC statement.
    • All the HALDB databases, including logically related databases and PSINDEX databases, are specified by DATABASE statements.
      Tip: Instead of specifying HALDB database names individually with multiple DATABASE statements, you can specify DBALL=YES on the DATABASE statement. This specification causes the HD Pointer Checker utility to process all the related databases.
    • DATASET=IMAGECOPY is not specified on the DATABASE statements. Image copies cannot be used as input.
    For more information about these keywords, see FABPMAIN PROCCTL data set.

    Use the following JCL example to run the HD Pointer Checker utility with REPAIRILK=YES. In this example, the PHDAM0A1 database is the HALDB database with errors and the database has logical relationships.

    //EXAMPLE1 JOB --- use normal job statement parameters here ---
    //*
    //PCRUN EXEC FABPPD,
    // DBRC=Y
    //*
    //* ----------------------------------------------------------------------------
    //PROCCTL DD *
      PROC TYPE=ALL,DBORG=ALL,HASH=NO,EPSCHK=YES,DUPILKCHK=YES,REPAIRILK=YES
      DATABASE DB=PHDAM0A1,PART=*ALL,DATASET=REAL,DBALL=YES
      END
    /*
    //FABPILK DD DISP=SHR,DSN=HPS.FABPILK
  5. Run the ILK Repair utility of IMS Database Repair Facility to repair the HALDB databases.

    When you code the JCL statements for the ILK Repair utility, specify the FABPILK data set that was created in step 4 as input for the utility.

    For more information, see the topic "Running the ILK Repair utility" in the IMS Database Repair Facility for IMS Solution Packs User's Guide.

  6. Delete and define the indirect list data sets (ILDSs) for the partitions of the HALDB databases. Then, run the IMS HALDB Index/ILDS Rebuild utility (DFSPREC0) to rebuild the ILDSs.

    Complete this step for each HALDB partition that you identified from the ILK Repair utility report in step 5.

    For more information about the IMS HALDB Index/ILDS Rebuild utility (DFSPREC0), see IMS Database Utilities.

  7. Consider activating the HALDB reorganization number verification function of IMS.
    Recommendation: If this function is not enabled yet, consider enabling it because it ensures the consistency of HALDB partition reorganization numbers and prevents duplicate ILKs and potentially duplicate ILKs. For more information see the topic "HALDB partition reorganization numbers" in IMS Database Administration.
  8. Run the HD Pointer Checker utility with the DUPILKCHK=YES option for the HALDB databases, their logically related databases, and their PSINDEX databases, and verify that all the errors are resolved.
  9. Create image copies of the repaired HALDB databases including logically related HALDB databases and related PSINDEX databases.
  10. Restart the repaired HALDB databases.

Results

During this procedure, HALDB partition reorganization numbers in data set group A of the HALDB partitions are corrected. When updates are made to the repaired partitions or the repaired partitions are reorganized, IMS updates the HALDB partition reorganization numbers that are stored in RECON data sets with the correct numbers.