IBM Support

PK57593: SECONDARY INDEX HASH CHECK SUPPORT

A fix is available

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as new function.

Error description

  • This APAR provides the following new functions to the HD Pointer
    Checker (HDPC) component.
      1. Secondary index HASH checking
      HDPC HASH check function is enhanced to support secondary
      index HASH checking.
      2. IXKEYCHK support for HASH checking
      IXKEYCHK=YES can be specified when HASH=YES is specified,
      in which case HASH checking of the index key will be
      performed.
    

Local fix

  • 
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: IBM IMS High Performance Pointer Checker for *
    *                 z/OS Version 2 Release 2 (FMID=HPC2220)      *
    *                 users.                                       *
    ****************************************************************
    * PROBLEM DESCRIPTION: This APAR provides the following new    *
    *                      functions for the HD Pointer Checker    *
    *                      (HDPC) component.                       *
    ****************************************************************
    * RECOMMENDATION: Apply the maintenance for this APAR.         *
    ****************************************************************
    This APAR provides the following new functions for the HD
    Pointer Checker (HDPC) component.
    
    1. Secondary index HASH check function for the FABPMAIN program
    
      The secondary index HASH check is performed by the FABPMAIN
      program when HASH=YES or HASH=FORCE is specified by the PROC
      statement and a secondary index database is specified by the
      DATABASE statement in the PROCCTL data set.
    
      The following checks are done in the secondary index HASH
      check function.
      - The check for the number of index pointer segments, and the
        number of index source segments
      - The check for the total of direct index pointers, and the
        total of RBA of the index target segments
    
      +--!!!! Restriction !!!!-------------------------------------+
      | Secondary index HASH check is not done when one of the     |
      | following conditions are met.                              |
      | - A secondary index maintenance exit routine is defined in |
      |   a DBD, but the routine is not in the IMS2 DD data set or |
      |   in the STEPLIB, LOADLIB, or the LINKLIST library.        |
      | - A secondary index maintenance exit routine is defined in |
      |   a DBD, but SPIXCHK=NO is specified in the PROCCTL data   |
      |   set.                                                     |
      | - The source segment is compressed and the pointer segment |
      |   is suppressed, but the segment/edit compression routine  |
      |   is not in the IMS2 DD data set or in the STEPLIB,        |
      |   LOADLIB, or the LINKLIST library.                        |
      | - A pointer segment is suppressed, and some of the source  |
      |   segments are split to prefix and data portions and some  |
      |   are physically deleted.                                  |
      |                                                            |
      | On the conditions below, the direct index pointer values   |
      | are not checked, but the number of pointer segments are    |
      | checked.                                                   |
      | - Secondary index has a symbolic index pointer.            |
      | - The source segment is dependent of the target segment,   |
      |   but the source segment is not a physical child of the    |
      |   target segment.                                          |
      | - The source segment is a physical child of the target     |
      |   segment, but the source segment does not have a physical |
      |   parent pointer.                                          |
      | - A pointer segment is suppressed, and some of the source  |
      |   segments are split to prefix and data portions.          |
      +------------------------------------------------------------+
    
    2. Index key HASH check support
    
      The index key HASH check is done when the HASH check is
      selected, and IXKEYCHK=YES is specified in the PROCCTL data
      set of the FABPMAIN program or in the ICEIN data set of HPIC
      or IPR.
    
      The following check is done in the index key HASH check.
      - The check for total of the keys of the index pointer
        segments, and the total of the keys of index source
        segments.
    
      Index key HASH check is supported in the following HDPC
      environment.
      - FABPMAIN program
      - Single-step HPIC HASH check
      - HASH check under IPR
    
      Index key HASH check supports the following indexes.
      - Secondary index
      - HIDAM primary index
      - PHIDAM primary index (Only in FABPMAIN program)
    
    +--!!!! Restriction !!!!-------------------------------------+
      | Index key HASH check is not done when one of the following |
      | conditions are met.                                        |
      | - An index database is a PSINDEX                           |
      | - A secondary index database is not checked by the         |
      |   standard HASH check because of the restrictions of the   |
      |   HD Pointer Checker.                                      |
      | - A /CK field is specified by the SUBSEQ= operand of the   |
      |   XDFLD statement.                                         |
      | - Some of the source segments are split to prefix and data |
      |   portions and some are physically deleted.                |
      +------------------------------------------------------------+
    

Problem conclusion

  • 
    

Temporary fix

  • 
    

Comments

  • Documentation Changes:
    Note: The section numbers are those of the BookManager (BKMGR)
    book.
    The documentation is modified as follows:
    ==============================================================
      IMS High Performance Pointer Checker for z/OS, V2R2,
      User's Guide (SC18997400)
    ==============================================================
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    2.0        HD Pointer Checker
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    --------------------------------------------------------------
    2.1        Overview of HD Pointer Checker
    2.1.4      Restrictions and considerations
    --------------------------------------------------------------
    The following descriptions are deleted:
    
       Restrictions and considerations for the HASH check function:
       :
    << Delete >>
       The secondary index database cannot be analyzed by the HASH
       Check function.
    
       Restrictions and considerations for analyzing secondary index
       databases:
    << Delete >>
       The secondary index database cannot be analyzed by the HASH
       Check function.
    --------------------------------------------------------------
    2.2        Operating instructions for the HD Pointer Checker
               processor
    2.2.1      Job control language
    2.2.1.1    FABPMAIN JCL
    2.2.1.1.2  DD statements
    --------------------------------------------------------------
    Table 3 is modified as flows:
    
       DD NAME:      MARGI2nn(MERGIN2)
    |  Description:  Used if IXKEYCHK=YES and HASH=NO.
    
       DD NAME:      SORTE2nn(SORTEX2)
    |  Description:  Used if IXKEYCHK=YES and HASH=NO.
    
       DD NAME:      IXKEY
    |  Description:  Used if IXKEYCHK=YES and HASH=NO.
    
    Table 4 is modified as flows:
    
       DD NAME:      MARGI2nn(MERGIN2)
    |  Description:  Required if IXKEYCHK=YES and HASH=NO.
    |  (See note below)
    
       DD NAME:      SORTE2nn(SORTEX2)
    |  Description:  Required if IXKEYCHK=YES and HASH=NO.
    |  (See note below)
    
    Table 5 is modified as flows:
    
       DD NAME:      MARGI2nn(MERGIN2)
    |  Description:  Required if IXKEYCHK=YES and HASH=NO are used
    |  for the preceding scan jobs.
    
       DD NAME:      SORTE2nn(SORTEX2)
    |  Description:  Required if IXKEYCHK=YES and HASH=NO are used
    |  for the preceding scan jobs.
    
       DD NAME:      IXKEY
    |  Description:  Used if IXKEYCHK=YES and HASH=NO are used for
    |  the preceding scan jobs.
    
    The following descriptions are modified:
    
       MEGI2nn DD
       This is an optional work data set that is generated by the
       scan process of the index target segment in HDAM, HIDAM,
       PHDAM, or PHIDAM when PROC TYPE=ALL or TYPE=SCAN is specified
    |  with IXKEYCHK=YES and HASH=NO. It becomes an input for the
       CHECK process.
    
       SORTE2nn DD
       This is an optional work data set that is generated by the
       scan process of the index source segment in HISAM, HDAM,
       HIDAM, PHDAM, PHIDAM, and the index database when PROC
    |  TYPE=ALL or TYPE=SCAN is specified with IXKEYCHK=YES and
    |  HASH=NO. It becomes an input for the CHECK process.
    
       IXKEY DD
       This is a work data set used in the CHECK process when PROC
    |  TYPE=ALL or TYPE=SCAN is specified with IXKEYCHK=YES and
    |  HASH=NO.
    --------------------------------------------------------------
    2.2        Operating instructions for the HD Pointer Checker
               processor
    2.2.2      Input
    2.2.2.1    FABPMAIN JCL
    2.2.2.1.4  PROC statement
    --------------------------------------------------------------
    The following descriptions are modified:
    
       HASH=
       Specifies whether you want to check the pointers by use of
       the HASH Check function. This option can be specified when
       TYPE=ALL or SCAN is specified. When HASH=YES or FORCE is
    |  specified, INCORE=YES and EPSCHK=YES are ignored and set to
       NO.
    
       IXKEYCHK=
       :
    |  This option can be specified when TYPE=ALL or SCAN is
    |  specified.
    
       Abbreviation KEYCHK and IKEYCHK can be used for IXKEYCHK.
    --------------------------------------------------------------
    2.2        Operating instructions for the HD Pointer Checker
               processor
    2.2.2      Input
    2.2.2.1    FABPMAIN PROCCTL data set
    2.2.2.1.10 Summary of index database checking
    --------------------------------------------------------------
    Table 9 is modified as flows:
    
       PROCCTL PROC HASH=YES & 1-2(Index key check):
    |  YES (PROC IXKEYCHK=YES) (*10)
    
       ICEIN HDPC=Y & 1-2(Index key check):
    |  YES (GLOBAL IXKEYCHK=YES) (*10)
    
    Table 10 is modified as flows:
    
       PROCCTL PROC HASH=YES & 2-1(Basic function):
    |  YES (DATABASE statement of the index database) (*1) (*5) (*6)
    
       PROCCTL PROC HASH=YES & 2-2(Index key check):
    |  YES (PROC IXKEYCHK=YES) (*7) (*10)
    
       ICEIN HDPC=Y & 2-2(Index key check):
    |  YES (GLOBAL IXKEYCHK=YES) (*10)
    
    Table 11 is modified as flows:
    
       PROCCTL PROC HASH=YES | DATABASE DATASET=REAL &
       3-2(Index key check):
    |  YES (PROC IXKEYCHK=YES) (*10)
    
    The following description is added to the bottom of
    this section:
    
    |  *10
    |  If the following index is used, HASH check of index key is
    |  not done.
    |  - A secondary index that cannot be checked due to
    |    restriction.
    |  - 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.
    --------------------------------------------------------------
    2.2        Operating instructions for the HD Pointer Checker
               processor
    2.2.3      Output
    --------------------------------------------------------------
    Table 16 is modified as flows:
    
       Report name: Evaluation of Index pointers and Keys
       PROCCTL statement and parameter for printing report:
    |  PROC IXKEYCHK=YES and HASH=NO
    --------------------------------------------------------------
    2.2        Operating instructions for the HD Pointer Checker
               processor
    2.2.3      Output
    2.2.3.5    EVALUPRT data set
    2.2.3.5.7  Evaluation of Index Pointer and Keys report
    --------------------------------------------------------------
    The following description is modified:
    
       This report (see Figure 55) contains the errors for index
       pointers and keys detected through the Index Key Check
    |  process. It is produced when IXKEYCHK=YES and HASH=NO are
       specified in the PROC statement, and all index databases to
       be checked are specified in the DATABASE statements.
    --------------------------------------------------------------
    2.11       Estimating runtime resources
    2.11.1     Estimating the word data set size for HD Pointer
               Checker
    2.11.1.3   Estimating the sizes of additional data sets
    2.11.1.3.2 Estimating the sizes of the work data sets for
               IXKEYCHK=YES (MERGI2nn,SORTE2nn,and IXKEY)
    --------------------------------------------------------------
    The following description is modified:
    
       This section tells how to estimate the sizes of the data sets
    |  that are needed when you specify PROC IXKEYCHK=YES and
    |  HASH=NO.
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    APPENDIX1       Appendixes
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    --------------------------------------------------------------
    APPENDIX1.1     Appendix A. Message and codes
    APPENDIX1.1.1   HD Pointer Checker
    APPENDIX1.1.1.3 Messages
    --------------------------------------------------------------
    Following messages are added:
    
    |  FABP1955E INDEX KEY OF INDEX SOURCE SEGMENTS
    |  (DB: dbname SEGMENT: segment) AND INDEX POINTER SEGMENTS IS
    |  NOT THE SAME
    |  FABP1955E INDEX KEY OF ROOT         SEGMENTS
    |  (DB: dbname SEGMENT: segment) AND INDEX POINTER SEGMENTS IS
    |  NOT THE SAME
    |
    |  Explanation: The database is damaged. The HASH total of index
    |  keys in source segments or ROOT segments does not equal to
    |  the HASH total of the index keys in the index pointer
    |  segments.
    |  System Action: Processing continues.
    |  Programmer Response: Correct the database, and rerun the HD
    |  Pointer Checker job.
    |  Problem Determination: None
    
    |  FABP4027W INDEX DB: dbdname CANNOT BE CHCKED WITH
    |  IXKEYCHK=YES
    |
    |  Explanation: Index key in index database cannot be checked
    |  for one of the following reasons:
    |  - Some of the source segments are split to prefix and data
    |    portions and some are physically deleted.
    |  - The source segment is compressed, but the segment/edit
    |    compression routine is not in the IMS2 DD data set or in
    |    the STEPLIB, LOADLIB, or the LINKLIST library.
    |  System Action: Processing continues.
    |  Programmer Response: If you do not need to check the index
    |  key, this message can be ignored.
    |  Determination: None
    

APAR Information

  • APAR number

    PK57593

  • Reported component name

    IMS POINTER CHE

  • Reported component ID

    5655E0900

  • Reported release

    220

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2007-12-04

  • Closed date

    2007-12-17

  • Last modified date

    2008-01-03

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    UK32387

Modules/Macros

  •    FABPADBS FABPANAL FABPAPRS FABPAWDS FABPESTM
    FABPGVT  FABPGVT0 FABPHEVL FABPHEXM FABPHEXS FABPHINI FABPHPUT
    FABPHRCK FABPHSDA FABPHSHI FABPHSIX FABPIST  FABPLINK FABPMSGT
    FABPPSDA FABPPSIX FABPPTRT FABPSCMP FABPSDA0 FABPSIX0 FABPSTAP
    FABPSTS  FABPSUMM FABPUDBR FABPUHTC FABPURTO FABUITCT HPC2220J
    

Publications Referenced
SC18997400

Fix information

  • Fixed component name

    IMS POINTER CHE

  • Fixed component ID

    5655E0900

Applicable component levels

  • R220 PSY UK32387

       UP07/12/20 P F712

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":null,"label":null},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCX89G","label":"IMS HP Pointer Checker"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"2.2.0"}]

Document Information

Modified date:
03 April 2021