T2 errors

HD Pointer Checker prints an error message every time it detects an occurrence of more than seven slack bytes (this is the default). This scenario shows that error message FABP0410E (also known as a T2 error) can occur as a result of normal, valid delete or replace operations. T2 errors that occur this way are not really errors.

T2 errors can also be the result of the following database damage:

  • The wrong DBD might have been used to scan the database.
  • An improper recovery attempt might have been made to recover the database.

Therefore, you must analyze an occurrence of more than seven slack bytes. However, the specification of the T2CHK option in the PROCCTL data set will allow the user to easily ignore the short and/or known T2s that are not really errors. The way to specify the T2CHK option is described in FABPMAIN PROCCTL data set.

The T2 information is reported by the following reports:

  • Scan of HISAM Database report produced by the SCAN processor
  • Validation of a Pointer to a Target at SCAN report produced by the SCAN processor
  • Validation of a Pointer to a Target report produced by the CHECK processor.

If only T2 errors are detected for the database throughout HD Pointer Checker run, the return code for HD Pointer Checker run is set to 2. The T2 errors are reported in the HD Pointer Checker Summary report.

T2 processing

After HD Pointer Checker reads a database block (using either the VSAM or QSAM access method), it classifies each byte in the block. It does this during a sequential pass over the block.

Each segment or free space element is expected to be followed by another segment or free space element. If an invalid segment code is found to be following a segment or free space element, HD Pointer Checker assumes that a slack byte has been detected. HD Pointer Checker now tries to locate the next valid segment or free space element. It does this by testing every second byte for a valid segment code. (Because segments always begin on bytes with even relative byte addresses, it is sufficient to test every other byte.) Once a valid segment code (or free space element) is found, and a rudimentary validity check is satisfied, HD Pointer Checker assumes it is back on track in its deblocking scan of the database block. If the number of bytes of unknown data it detects is more than seven (the default value), an error message is printed.

It is possible that HD Pointer Checker might not get back on track correctly. A coincidence that fools the program could occur. If this happens, other error messages that are not valid might appear. In practice, such a coincidence is very rare.

T2CHK option

By using the T2CHK option, the user can easily ignore the short and/or known T2s that are not really errors in HISAM, HDAM, HIDAM, PHDAM, and PHIDAM databases. For this option, the following specifications are needed:

  • The minimum value of T2 record length to be reported (for HDAM, HIDAM, PHDAM, and PHIDAM).

    This causes the T2 record whose length is shorter than the specified minimum value not to be reported. It allows the user to ignore short T2s that might not be really errors.

  • The maximum number of T2 records not to be reported (for HISAM, HDAM, HIDAM, PHDAM, and PHIDAM).

    By specifying T2 record threshold value for this specification, the known T2 is not reported. It allows the user to ignore known T2s that might not be really errors and will continue to be present until the database reorganization.

For a description of the T2CHK option, see OPTION statement.

What should be done for T2 errors

If T2 error messages appear in your HD Pointer Checker reports, investigate them and determine their cause. Use HD Pointer Checker block maps and block dumps to verify whether the slack bytes were caused by normal update operations.

If only normal operations have caused the T2 errors, do one of the following:

  • Ignore the T2 messages (because they are not actual errors).
  • Reorganize the database (which eliminates all slack bytes).

If it is ascertained that the unknown data could not have occurred naturally, repair the database. Refer to Database repair guidelines for instructions on how to repair databases.