Summary of index database checking

HD Pointer Checker checks several items regarding primary and secondary indexes. What you can check varies depending on how it is run and what you specify on the control statement.

Related reading:
  • For information about specifying the PROCCTL control statement, see FABPMAIN PROCCTL data set.
  • For information about specifying the ICEIN control statement when running HD Pointer Checker in IMS HP Image Copy, IMS Database Reorganization Expert, or IMS Online Reorganization Facility jobs, see the User's Guide of each product.
  • For information about specifying the ADD command or the UTILGBL statement when running HD Pointer Checker in IMS Database Recovery Facility jobs, see the IMS Recovery Solution Pack IMS Database Recovery Facility User's Guide and Reference.

If a segment/edit compression routine is defined in the index source segment, specify the data set that contains the segment/edit compression routine in the IMS2 or STEPLIB DD statement to do the index check in an HD Pointer Checker job or IMS HP Image Copy job.

If a secondary index database maintenance exit routine is defined in the index source segment, specify the data set that contains the secondary index database maintenance exit routine in the IMS2 or STEPLIB DD statement to do the index check

The tables in the following subsections show what you can check for each index database type and how to specify it on the control statement. "Yes" indicates that the check is available, and how to specify it is shown in brackets. Even if "Yes" is specified, there are restrictions, which are described in each table.

HIDAM primary index

For HIDAM primary indexes, the following checks are available:
Basic Check
  • Checks the number of root segments and index pointer segments.
  • Validates the pointer values (RBA of the root segment) of the index pointer segments.
Index Key Check
Validates the key values of the index pointer segments.
Table 1. HIDAM primary index
Function HD Pointer Checker processor (FABPMAIN) Single Step HASH Check option run from IMS HP Image Copy HASH Check option run from IMS Database Reorganization Expert HASH Check option run from IMS Online Reorganization Facility HASH Check option run from IMS Database Recovery Facility
PROCCTL PROC HASH=NO PROCCTL PROC HASH=YES ICEIN HDPC=Y ICEIN HDPC=Y ICEIN HDPC=Y or PTRCHECK(Y) ADD PC()
Basic Check Yes (DATABASE statement of the index database) (Required) Yes (DATABASE statement of the index database) Yes (Specify the index database in ICEIN) Yes (Specify the index database in ICEIN) Yes (Specify the index database in ICEIN or specify the HIDAM database and PTRCHECK(Y) in HRFSYSIN) Yes (Specify the index database or the BLD_PRIMARY option)
Index Key Check Yes (PROC IXKEYCHK=YES) Yes (PROC IXKEYCHK=YES) (See 1) Yes (GLOBAL IXKEYCHK=YES) (See 1) Yes (GLOBAL IXKEYCHK=YES) (See 1 and 2) Yes (GLOBAL IXKEYCHK=YES in ICEIN) (See 1 and 2)) No
Notes:
  1. If some of the root segments are split to prefix and data portions and physically deleted, HASH Check of index key is not done.
  2. HASH Check is not done for the index database in IMS Database Reorganization Expert and IMS Online Reorganization Facility jobs when the root segments are compressed with a segment/edit compression routine.

Secondary index of non-HALDB

For secondary indexes of non-HALDBs, the following checks are available:
Basic Check
  • Checks the number of index source segments and index pointer segments.
  • Validates the pointer values (RBA of the index target segment) of the index pointer segments.
  • When the index database has an overflow data set, validates the pointers that point to the logical records in the overflow data set.
Index Key Check
Validates the key values of the index pointer segments.
Symbolic Pointer Check
Validates the symbolic index pointers.
Suppressed Segment Check
Checks that the index pointer segments are suppressed correctly by using the secondary index maintenance exit routine.
Table 2. Secondary index of non-HALDB
Function HD Pointer Checker processor (FABPMAIN) Single Step HASH Check option run from IMS HP Image Copy HASH Check option run from IMS Database Reorganization Expert HASH Check option run from IMS Online Reorganization Facility HASH Check option run from IMS Database Recovery Facility
PROCCTL PROC HASH=NO PROCCTL PROC HASH=YES ICEIN HDPC=Y ICEIN HDPC=Y ICEIN HDPC=Y or PTRCHECK(Y) ADD PC()
Basic Check Yes (DATABASE statement of the index database) (See 4 and 6) YES (DATABASE statement of the index database) (See 1, 3, and 4) Yes (Specify the index database in ICEIN) (See 1 and 3) Yes (Specify the index database in ICEIN) (See 1, 2, and 3) Yes (Specify the index database in ICEIN or specify an indexed database and PTRCHECK(Y) in HRFSYSIN) (See 1, 2, and 3) Yes (Specify the index database or the BLD_SECONDARY() option) (See 1, 3, and 9)
Index Key Check Yes (PROC IXKEYCHK=YES) (See 5 and 8) YES (PROC IXKEYCHK=YES) (See 5 and 7) YES (GLOBAL IXKEYCHK=YES) (See 7) YES (GLOBAL IXKEYCHK=YES) (See 2 and 7) YES (GLOBAL IXKEYCHK=YES in ICEIN) (See 2 and 7) No
Symbolic Pointer Check Yes (PROC SYMIXCHK=YES) No No No No No
Suppressed Segment Check Yes (OPTION SPIXCHK=YES) Yes (OPTION SPIXCHK=YES) Yes (This check is done with the Basic Check) Yes (This check is done with the Basic Check) Yes (This check is done with the Basic Check) No
Notes:
  1. RBA check is possible only when index source segment and index target segment are in the same segment, or when the index target segment is the parent segment of index source segment. However, if index target segment is the parent segment of index source segment, and the index source segment does not have a PP pointer, RBA check is not done.
  2. HASH Check is not done for the index database in IMS Database Reorganization Expert and IMS Online Reorganization Facility jobs when the source segments are compressed with a segment/edit compression routine.
  3. When the index source segment is variable-length, and if there is a segment that is split and physically deleted in any of the index source segments, and if there is a segment whose index is suppressed in any of the index source segments, the HASH Check for the index database cannot be done, and message FABP4025W is issued.
  4. When the secondary index database maintenance exit is defined in the index source segment, the Basic Check for the following factors is done only when SPIXCHK=YES is also specified:
    • The numbers of the index source segments and the index pointer segments
    • The values of the pointers that point to the index target segments
    • The values of the pointers that point to the logical records in the overflow data set when the index database has an overflow data set
  5. When the secondary index database maintenance exit is defined on the index source segment, the Index Key Check is done only when SPIXCHK=YES is also specified.
  6. If symbolic index pointer is used, the RBA of the index target segment is not validated.
  7. If the following index is used, HASH Check of index key is not done:
    • A /CK field is specified on the SUBSEQ operand of the XDFLD statement.
    • Some of the source segments are split to prefix and data portions and physically deleted.
  8. If /CK fields are defined by the SUBSEQ operand of the XDFLD statement, the Index Key Check is done only when IXKEYCHK=YES and IXKEYCKCHK=YES are specified.
  9. When secondary index databases with an overflow data set are built by IMS Index Builder during the IMS Database Recovery Facility job, only the following factors are checked by the Basic Check:
    • The numbers of the index source segments and the index pointer segments
    • The values of the pointers that point to the index target segments

Primary index of HALDB PHIDAM

For primary indexes of HALDB PHIDAM databases, the following checks are available:
Basic Check
  • Checks the number of root segments and index pointer segments.
  • Validates the pointer values (RBA of the root segment) of the index pointer segments.
Index Key Check
Validates the key values of the index pointer segments.
Table 3. Primary index of HALDB PHIDAM
Function HD Pointer Checker processor (FABPMAIN) Single Step HASH Check option run from IMS HP Image Copy HASH Check option run from IMS Database Reorganization Expert HASH Check option run from IMS Online Reorganization Facility HASH Check option run from IMS Database Recovery Facility
PROCCTL PROC HASH=NO DATABASE DATASET=REAL PROCCTL PROC HASH=NO DATABASE DATASET=IMAGECOPY PROCCTL PROC HASH=YES DATABASE DATASET=REAL PROCCTL PROC HASH=YES DATABASE DATASET=IMAGECOPY ICEIN HDPC=Y ICEIN HDPC=Y ICEIN HDPC=Y or PTRCHECK(Y) ADD PC()
Basic Check Yes (DATABASE statement of the PHIDAM database) (Required) No (ignored even if the DATABASE statement of the PHIDAM database is specified.) Yes (DATABASE statement of the PHIDAM database) (Required) No (ignored even if the DATABASE statement of the PHIDAM database is specified.) No No No No
Index Key Check Yes (PROC IXKEYCHK=YES) No YES (PROC IXKEYCHK=YES) (See Note) No No No No No
Note: If some of the root segments are split to prefix and data portions and physically deleted, HASH Check of index key is not done.

Secondary index of HALDB (PSINDEX)

For secondary indexes of HALDBs (PSINDEXes), the following checks are available:
Basic Check
  • Checks the number of index source segments and index pointer segments.
  • Validates the pointer values of the index pointer segments.
Index Key Check
Validates the key values of the index pointer segments.
EPS Check
Validates whether the relationship among the index target segments, the index list entries (ILE) in the indirect list data set (ILDS), and the index pointer segments are correct.
Suppressed Segment Check
Checks that the index pointer segments are suppressed correctly by using the secondary index maintenance exit routine.
Table 4. Secondary index of HALDB (PSINDEX)
Function HD Pointer Checker processor (FABPMAIN) Single Step HASH Check option run from IMS HP Image Copy HASH Check option run from IMS Database Reorganization Expert HASH Check option run from IMS Online Reorganization Facility HASH Check option run from IMS Database Recovery Facility
PROCCTL PROC HASH=NO PROCCTL PROC HASH=YES ICEIN HDPC=Y ICEIN HDPC=Y ICEIN HDPC=Y or PTRCHECK(Y) ADD PC()
Basic Check Yes (DATABASE statement of the index database) (See 1) No No No No No
Index Key Check Yes (PROC IXKEYCHK=YES) (See 2, 3, and 4) No No No No No
EPS Check Yes (PROC EPSCHK=YES) (See 5) No No No No No
Suppressed Segment Check Yes (OPTION SPIXCHK=YES) No No No No No
Notes:
  1. When the secondary index database maintenance exit is defined on the index source segment, the Basic Check is done only when SPIXCHK=YES is also specified.
  2. When the secondary index database maintenance exit is defined on the index source segment, the Index Key Check is done only when SPIXCHK=YES is also specified.
  3. The Index Key Check is done only when EPSCHK=YES is also specified.
  4. If /CK fields are defined by the SUBSEQ operand of the XDFLD statement, the Index Key Check is done only when IXKEYCHK=YES and IXKEYCKCHK=YES are specified.
  5. If Image Copy is the input, specify EPSCHK=NO because the contents of ILDS will be changed by the HALDB reorganization after taking the image copy.

    If a HALDB reorganization was not done after taking an image copy, EPS Check will become effective. HD Pointer Checker does not check whether the HALDB was reorganized or not after taking an image copy. Therefore, select EPSCHK=YES or NO depending on whether a reorganization was done. The default value is EPSCHK=YES; to disable EPS Check, specify EPSCHK=NO explicitly.