ADAACK checks the address converter for a specific file or range of files or for a specific ISN or range of ISNs. If spanned records are in use, ADAACK assumes any ISNs passed to it are primary ISNs, and performs its processing accordingly. The ranges can encompass all files or all ISNs.
ADAACK is used in conjunction with the ADAICK utility. Alternatively, the ADACHK utility can be used on its own to accomplish the same integrity checks.
If the file being checked has spanned records enabled, the secondary address converter, used to map the secondary ISNs to the RABNs of the secondary records, will automatically be checked as well. For more information about spanned records, read Spanned Records.
ADAACK checks each address converter element to determine whether the Data Storage RABN is within the used portion of the Data Storage extents specified in the file control block (FCB).
ADAACK checks the ISN for each record in each Data Storage block (within the specified ISN range) to ensure that the address converter element for that ISN contains the correct Data Storage RABN. This is done in the following way:
Main memory is allocated for the specified range of ISNs (number of ISNs, times 4). If no range is specified, the entire range (MINISN through TOPISN) is checked.
The address converter is read from the database into this area in memory.
Each used Data Storage block (according to the Data Storage extents in the FCB) is read and checked against the address converter in memory. Each ISN in the address converter must have exactly one associated Data Storage record.
The address converter in memory is checked for ISNs that did not occur in Data Storage.
For large files, ADAACK may run for a long time. ADAACK prints a message line after every 20 Data Storage blocks processed.
Run time is not affected by the ISN range, since all used Data Storage blocks are read.
Notes:
ADAACK returns a condition code 8 if any errors occur.