Program functions

The following subsections explain the program functions of the HD Pointer Checker utility.

Detecting errors in a database

Detecting errors in a database is the primary function of HD Pointer Checker.

HD Pointer Checker finds errors by checking direct pointers (physical pointers, logical pointers, hierarchical pointers, pointers to free space, and index pointers) in IMS full-function databases.

The supported databases are as follows:

  • HDAM databases
  • HIDAM primary and index databases
  • PHDAM databases
  • PHIDAM primary and index databases
  • HISAM (including SHISAM) databases
  • HDAM and HIDAM secondary index databases
  • PHDAM and PHIDAM secondary index databases (PSINDEX)

HD Pointer Checker checks the consistency between direct pointers and the Relative Bytes Address (RBA) of segments and free space.

HD Pointer Checker provides the following two methods to check pointers:
Standard Check function
HD Pointer Checker compares the pointers and RBAs of the pointed segments one by one.
HASH Check function
HD Pointer Checker compares the sum of pointer values with the sum of RBAs of the pointed segments, rather than comparing each of the pointer values and segments one by one.
The Standard Check function takes more DASD and CPU resource and takes longer elapsed time than the HASH Check function. The HASH Check function provides fast pointer checking. However, it does not show the details of errors, and some optional functions are not available for the HASH Check function. Therefore, the HASH Check function is more suitable for regular checking while the Standard Check function is recommended when checking for some more important points. For example, you can use the Standard Check function to identify the location of an error that is found in a HASH Check.

HD Pointer Checker has the following optional checks in addition to the direct pointer check:

Index Key Check function
Detects incorrect index keys for the following databases:
  • HIDAM and PHIDAM primary index database
  • Secondary index database for HDAM, HIDAM, HISAM, PHDAM, and PHIDAM
Symbolic Pointer Checking
Detects the missing and errors in the symbolic LP pointers and the secondary index symbolic pointers.
HALDB EPS Checking
Detects the inconsistency among the HALDB extended pointer sets, indirect pointers in the indirect list data set (ILDS), and the RBAs of pointed segments.
HALDB Reorganization Number Verification
Detects errors in HALDB partition reorganization numbers by comparing the reorganization numbers in the HALDB partitions with the reorganization numbers in the RECON data sets.
HALDB Duplicate ILKs Checking
Checks whether HALDB partition reorganization numbers in HALDB partitions are corrupted, and whether incorrect ILKs exist in HALDB databases. This check is done by comparing the reorganization numbers in the HALDB partitions with the reorganization numbers in all ILKs in the HALDB database. HALDB partition reorganization numbers can become corrupted by inappropriate reorganization procedures and cause incorrect ILKs.

If errors are detected in the direct pointer checking and the optional checking, HD Pointer Checker reports the pointer errors. When a pointer error is reported, this means that the database is damaged.

Other than pointer errors, HD Pointer Checker reports T2 errors, if a database contains redundant spaces that are not segments nor free spaces. Such a space is called T2 record in HD Pointer Checker. When a T2 error is reported, it does not mean that the database is damaged but just indicates that there is some redundant space in the database. When HD Pointer Checker detects a pointer error or a T2 error, it notifies it by a message and return code. Optionally, it sends a notification message to TSO user IDs.

For information about T2 errors, see Reported by HD Pointer Checker slack bytes, unknown data, and T2 errors.

Describing the database

HD Pointer Checker prints a detailed description of the condition of the IMS database. The description includes comprehensive statistical information about pointers, segments, and free space.

Printing HDAM, HIDAM, PHDAM, or PHIDAM database blocks

HD Pointer Checker prints hexadecimal and character dumps of database control intervals or blocks. Each dump includes a map of all the segments and free space elements in the block, as well as the relative byte address (RBA) for each printed line.

Finding absolute disk addresses

HD Pointer Checker converts relative byte addresses (RBAs) into the corresponding absolute disk addresses. It calculates the cylinder, track, record, and offset for each input RBA.

You can also print the absolute disk addresses of user-specified RBAs by running Disk Address Analyzer (FABPCHRO program) in a stand-alone job. For more information, see Using Disk Address Analyzer.

Finding all pointers to a target segment

HD Pointer Checker lists the RBAs of all pointers (in other segments, possibly in other databases) that point to a specific target segment.

Creating history records

The results of an HD Pointer Checker run are stored in the HISTORY data set as a historical record. For details, see Creating a HISTORY data set.

Storing reports in the IMS Tools KB Output repository

You can store the reports of HD Pointer Checker and, when Space Monitor is called from an HD Pointer Checker job, Space Monitor reports in the IMS Tools KB Output repository. To store the reports, you must set up the environment. For more information, see Configuring the environment to store reports in IMS Tools KB.

Calling Space Monitor

HD Pointer Checker can call the Space Monitor utility and process the following functions:

  • Monitor and log data set space utilization
  • Describe space utilization

The Space Monitor function is called when the SPMNIN and SPMNSPDT DD statements are specified in FABPMAIN JCL, or when the SPMNSPDT DD statement and OPTION SPMN=YES is specified in the PROCCTL data set.

If you want to monitor the latest space utilization of VSAM data sets of IMS online full-function databases, you must specify PGM=FABPPC00 in the EXEC statement and call Space Monitor by setting SPMN=YES on an OPTION statement.

If you want to store Space Monitor reports in the IMS Tools KB Output repository, you must call Space Monitor by specifying SPMN=YES on the OPTION statement.

Collecting sensor data with the Integrated DB Sensor function

You can invoke the Integrated DB Sensor function to store sensor data while running HD Pointer Checker.

When the Integrated DB Sensor function is called, DB Sensor collects statistics about IMS databases and stores the data in the IMS Tools Knowledge Base Sensor Data repository. The stored data can be used by Autonomics Director, Policy Services, and Management Console for database analysis and tuning purposes.

To store statistics about IMS databases, DB Sensor scans databases and collects information about the characteristics of the organization of the data in each database. It also collects information from the system catalog, VSAM catalog, and Volume Table of Contents (VTOC). DB Sensor stores this information as sensor data in the Sensor Data repository.

The data in the Sensor Data repository is used in Autonomics Director jobs to monitor and maintain the health, performance, and recoverability of the database. In Autonomics Director jobs, policy evaluation of Policy Services is internally called to evaluate the database state based on the stored sensor data. When the jobs end, you can use Management Console to view graphical visualization and charting of sensor data, any exceptions that were detected by the policy evaluations, and recommendations for resolving the exceptions.

IMS Tools Knowledge Base, Policy Services, and Autonomics Director are provided in IBM® IMS Tools Base for z/OS®. For more information about these tools, see the following information:
  • Tools Base Autonomics Director User's Guide
  • Tools Base IMS Tools Knowledge Base User's Guide
  • Tools Base Policy Services User's Guide
  • Management Console User's Guide

To invoke DB Sensor, specify PGM=FABPPC00 in the EXEC statement and SENSOR=Y on the PROC statement in the PROCCTL DD.