z/TPF - Group home

CRUISE validation enhancements (APAR PH44215)

By Robert Dunn posted Fri August 12, 2022 04:33 PM

  


CRUISE validation enhancements provide the capability to validate the backward chain field and the AUT byte usage. The backward chain field and the AUT byte are both contained in the z/TPFDF standard header for the block.

z/TPFDF R-type files can use two types of backward chaining, which are default backward chaining and full backward chaining. In default backward chaining, the file address of the last block in the chain is stored in the prime block's backward chain field (STDBCH or ISTD8_BCH). This allows z/TPFDF to quickly access the last block in a subfile's overflow chain. When full backward chaining is enabled by setting the FULLBCH parameter to YES on the DBDEF macro, the previous block’s file address is stored in the current overflow block’s backward chain field. This can be used by z/TPFDF to quickly find the previous block in a chain of overflow blocks. Previously, CRUISE did not validate the file addresses in the backward chain field. Corrupted backward chain file addresses might cause problems with DELEMPTY processing, when reading backward in a subfile, or when reading the last logical record (LREC) in a subfile.

With APAR PH44215, CRUISE validates both types of backward chaining by verifying that the backward chain field points to the last or previous block as expected. If not, CRUISE issues messages to indicate where the problem is. With this information, you can pack the affected subfiles to fix the backward chains. CRUISE validates backward chains in all R-type files that are not using B+Tree indexing or pushdown .

For example, if during chain chase, it is determined the prime block's backward chain does not contain the file address for the last block in the subfile chain, then CRUISE will issue an FCRU0222E message:

FCRU0222E 15.25.16 THE EXPECTED BACKWARD CHAIN FILE ADDRESS WAS NOT
  FOUND IN THE PRIME BLOCK FOR FILE ID B321
  PRIME FA        - 00000000CC8AC96E
  EXPECTED BCH FA - 0000000018566636
  FOUND BCH FA    - 0000000000000001+

In this case, the prime block’s BCH field should have contained the file address of the last in chain (18566636). Instead, it contained 0000000000000001 

      

Additionally, if during chain chase it is determined that the file address contained in the header’s backward chain field of the current block does not reference the file address of the previous block in chain, then CRUISE will issue an FCRU0223E message:

FCRU0223E 15.25.16 THE EXPECTED BACKWARD CHAIN FILE ADDRESS WAS NOT
  FOUND IN AN OVERFLOW BLOCK FOR FILE ID B321
  PRIME FA        - 00000000CC8AC96E
  OVERFLOW FA     - 0000000018566635
  EXPECTED BCH FA - 00000000CC8AC96E
  FOUND BCH FA    - 0000000000000002+

In this case, the current overflow block’s BCH field should have contained the file address of the previous in chain (CC8AC96E), instead it contained 0000000000000002. 

 With this information, you can pack the affected subfiles to fix the corruption.


The AUT (STDAUT or ISTD8_AUT) byte is part of a block’s z/TPFDF standard header. The byte is used by z/TPFDF encryption support (bit 0) and z/TPFDF remote subfile support (bit 1). Bits 2 - 7 are reserved for future use by IBM®. Improper use of AUT bits 0 or 1 might cause unpredictable results. Additionally, use of reserved bits 2 - 7 might cause problems with future z/TPFDF enhancements.

With APAR PH44215, CRUISE validates the AUT byte usage in your z/TPFDF R-type files. If any bit in the AUT byte is on when not expected, CRUISE issues messages that you can use to investigate the affected z/TPFDF files.

For example, if AUT bit 1 is set to on in a prime block and REMOTEALLOW parameter is set to NO on the DBDEF macro, then CRUISE will issue the FCRU0225W message during chain chase:

FCRU0225W 14.14.05 THE REMOTE SUBFILE FLAG, STDAUT BIT 1, MIGHT BE
  SET INCORRECTLY IN A PRIME BLOCK AND REMOTE SUBFILE SUPPORT IS NOT
  ENABLED FOR FILE ID B491
  PRIME FA - 00000000CC8BC001+

In this example, the current prime block’s (CC8BC001) AUT bit 1 is on REMOTEALLOW is set to NO, and there is an in-progress fallback of this B491 subfile.

 

If CRUISE determines there is a potential inconsistency in AUT bit usage, CRUISE will issue a warning or error message. The CRUISE messages that will be issued for the AUT bit inconsistencies can be found at:


For more information on these enhancements, see the IBM z/TPFDF documentation or the APEDIT for APAR PH44215.

0 comments
26 views