Analyzing fragmentation exceptions for HDAM and PHDAM databases

Analyze the fragmentation exceptions that were detected for HDAM and PHDAM databases.

Before you begin

Ensure that you can access the Sensor Data Statistics report that contains the latest sensor data. If you cannot access this report, run the FF DB Sensor Printing utility to generate the report.

About this task

In the following procedure, you will analyze each fragmentation exception that you received for HDAM databases or PHDAM partitions.

Start of changeFor each exception that was reported, you will first identify the relevant data elements to understand the condition of the database. Then you will analyze the relevant IMS Tools reports to learn more about the database state. Finally, if you use IMS Administration Foundation or Management Console and if relevant charts are available, you will analyze historical trends of sensor data to understand the trend characteristics of the sensor data that was obtained from the database data sets.End of change

By completing these steps, you will identify the type of fragmentation symptoms that occurred and the database data set for which the exceptions were reported.

Procedure

In this section, instructions to analyze the common fragmentation exceptions are provided. Follow the instructions for the exceptions that you received. The most common exceptions are listed first.
Exception class name: EXCESSIVE_SEGMENT_SCATTERING
This exception indicates that too many physical pointers point to another block or CI.
When a parent segment and its dependent segment exist in the same block or CI, or when twin segments are in the same block or CI, extra I/O operations are not needed. However, if they are in different blocks or CIs, the number of I/O operations might increase.
Complete these steps to analyze this exception:
  1. Locate the following data elements in the Sensor Data Statistics report:
    DB_PCT_NUM_PTR_DIFF_BLK
    DB_NUM_PTR_DIFF_BLK
    These data elements indicate the number of physical pointers that point to another block or CI, and the percentage of physical pointers that point to another block or CI compared to the physical pointers.

    These data elements are reported for each data set. Locate the data element values for each data set, and identify the data sets for which this exception was reported.

  2. Optional: To obtain more information about the physical pointers, run the HD Pointer Checker utility of IMS HP Pointer Checker, or run IMS HP Image Copy with the HDPC=YES option, and generate the following reports:
    DB Record Distribution Statistics report
    By reviewing the summary of dependent segments distribution part and the distribution of dependent segments in root block part, you can determine how many dependent segments exist in the blocks that are different from the root segment block.
    Partition Statistics report
    Database Statistics report
    By reviewing the segment and pointer statistics part, the rate of segment I/O occurrence part, and the VL segment split statistics part, you can determine the number of pointers that point to different blocks for each segment.
  3. Start of changeOptional: To view the trend of data over time, locate the following chart in IMS Administration Foundation or Management Console:End of change
    • Pointers to other blocks or CIs chart

    Understanding the trend over time can help you anticipate the future behavior of the data sets. Use this knowledge to determine when you might need to take preventative action and to establish efficient maintenance plans.

You have now obtained information about the current database state that caused this exception. You will use this information later to determine the appropriate action to resolve the exception.
In Step c, you also identified the chart that can help you establish maintenance plans to prevent this exceptional state from occurring in the future.
Exception class name: EXCESSIVE_VL_SPLIT_SEGMENTS
This exception indicates that too many variable-length segment splits exist.
When a variable-length segment is replaced with a segment that has a longer length, and the amount of free space in the block or CI is inadequate, the segment is split into the prefix part and the data part. These segment splits can increase I/O operations.
Complete these steps to analyze this exception:
  1. Locate the following data elements in the Sensor Data Statistics report:
    DB_NUM_VLSEG_SPLIT
    DB_PCT_NUM_VLSEG_SPLIT
    The values for these data elements indicate the number of segment splits and the percentage of segment splits compared to the number of variable segments.

    These data elements are reported for each data set. Locate the data element values for each data set, and identify the data sets for which this exception was reported.

  2. Optional: To obtain more information about the variable-length segment splits, run the HD Pointer Checker utility of IMS HP Pointer Checker, or IMS HP Image Copy with the HDPC=YES option, and generate the HD Data Set Statistics report. In this report, review the Segment occurrences/split part.
  3. Start of changeOptional: To view the trend of data over time, locate the following chart in IMS Administration Foundation or Management Console:End of change
    • Variable-length segment splits chart

    Understanding the trend over time can help you anticipate the future behavior of the data sets. Use this knowledge to determine when you might need to take preventative action and to establish efficient maintenance plans.

You have now obtained information about the current database state that caused this exception. You will use this information later to determine the appropriate action to resolve the exception.
In Step c, you also identified the chart that can help you establish maintenance plans to prevent this exceptional state from occurring in the future.
Exception class name: FRAGMENTED_FREE_SPACE
Exception class name: EXCESSIVE_SLACK_BYTES
These exceptions indicate that an excessive amount of unusable space exists in the data set. An excessive amount of unusable space wastes space and causes segments and database records to be fragmented.
FRAGMENTED_FREE_SPACE
This exception indicates an excessive amount of fragmented unusable IMS free space. Fragmented unusable IMS free space is fragmented IMS free space that is too small to store the shortest segment that is defined in the DBD definition.
EXCESSIVE_SLACK_BYTES
This exception indicates an excessive number of slack bytes. A slack byte is unusable space that is not used by a segment or that cannot be counted as IMS free space.
To learn more about slack bytes, see the topic "How IMS reclaims space" in the IMS High Performance Pointer Checker User's Guide.
These two exceptions indicate the same state in terms of space that cannot be reused by IMS. Even if you receive only one of these exceptions, analyze the state of the data sets from both perspectives to gain an overall understanding of the space that cannot be reused by IMS.
Complete these steps to analyze these exceptions:
  1. Locate the data elements that are related to IMS free space in the Sensor Data Statistics report:
    DB_AVG_NUM_FSE
    The value of this data element indicates the average number of IMS free space fragments in a CI or block.
    DB_AVG_NUM_NOREUSE_FSE
    The value of this data element indicates the average number of unusable IMS free space fragments in a CI or block. Unusable IMS free space refers to free space that is too small to store the shortest segment that is defined in the DBD definition. If the value of this data element is large, the database contains excessive amount of unusable space.

    These data elements are reported for each data set. Locate the data element values for each data set, and identify the data sets for which this exception was reported.

    Also, locate the following data elements. These data elements provide more information about the amount of remaining free space that IMS can use.

    DB_NUM_FSE_MIN
    The value of this data element indicates the number of IMS free space fragments in which the shortest segment that is defined in the DBD definition can be stored.
    DB_NUM_FSE_MAX
    The value of this data element indicates the number of IMS free space fragments in which the longest segment that is defined in the DBD definition can be stored.
    DB_NUM_FSE
    The value of this data element indicates the number of IMS free space fragments.
    DB_BYTES_FREE_SPACE
    The value of this data element indicates the total bytes of free space.

    These data elements are reported for each data set. Locate the data element values for each data set, and identify the data sets for which this exception was reported.

    Also, in some cases, determining if the length of fragmented IMS free space is large enough to store the segment of the segment type that has the most occurrences can help you analyze the condition of the IMS free space. You can do so by comparing the average length of IMS free space fragments with the segment length of the segment type that has the most occurrences. These values can be obtained as follows:

    1. Calculate the average length of IMS free space fragments by dividing the DB_BYTES_FREE_SPACE value by the DB_NUM_FSE value.
    2. Determine the segment type that has the most occurrences in the data set by generating an IMS HP Pointer Checker report as explained in Step c.

    If the segment length of that segment type is shorter than the average length, you can assume that an excessive amount of unusable IMS free space exists.

  2. Locate the data elements that are related to slack bytes in the Sensor Data Statistics report:
    DB_NUM_UNIDENTIFIED
    The value of this data element indicates the number of slack bytes.
    DB_BYTES_UNIDENTIFIED
    The value of this data element indicates the total slack bytes.
    DB_AVG_NUM_UNIDENTIFIED
    The value of this data element indicates the average number of slack bytes in a CI or block.

    These data elements are reported for each data set. Locate the data element values for each data set, and identify the data sets for which this exception was reported.

  3. Optional: To obtain more information, run the HD Pointer Checker utility of IMS HP Pointer Checker, or IMS HP Image Copy with the HDPC=YES option, and generate the HD Data Set Statistics report. In this report, review the Database record statistics part.

    In the Database record statistics part, determine the segment type that has the most segment occurrences and the segment length for that segment type. Then compare the length of the segment with the average length of IMS free space fragments that you already calculated in Step a. In an ideal data set, the average length of IMS free space fragments is typically longer than the segment length.

  4. Start of changeOptional: To view the trend of data over time, locate the following charts in IMS Administration Foundation or Management Console:End of change
    • Unusable IMS free space chart
    • Usable IMS free space chart
    • Slack bytes areas chart

    Understanding the trend over time can help you anticipate the future behavior of the data sets. Use this knowledge to determine when you might need to take preventative action and to establish efficient maintenance plans.

You have now obtained information about the current database state that caused this exception. You will use this information later to determine the appropriate action to resolve the exception.
In Step d, you also identified the charts that can help you establish maintenance plans to prevent this exceptional state from occurring in the future.

What to do next

If you received other exceptions that belong to other exception categories, see the following topics to determine your next step:

If the only exceptions that you received are fragmentation exceptions, continue with Resolving fragmentation exceptions for HDAM and PHDAM databases.