ADALOD uses the TEMP dataset to store the following information:
restart information;
Data Storage RABN/ISN for each record to be deleted (UPDATE only);
contents of the normal index at the start of the operation (UPDATE only);
descriptor values obtained from the input dataset;
ADAM overflow area (ADAM files only).
If the TEMP dataset is filled while collecting descriptor values from the input dataset, ADALOD temporarily writes the remaining descriptors to the sequential temp file DD/FILEA (if specified in the JCL). The descriptors are later read back in when the new index is built.
If actually called, DD/FILEA makes ADALOD operation considerably slower than specifying a TEMP dataset that is large enough to hold all descriptor values. The DD/FILEA TEMP dataset should normally be used only as a "safety net" to ensure adequate space for all descriptors during ADALOD operation. Specifying the DD/FILEA TEMP file therefore avoids an ADALOD abend caused by a temp area overrun.
Notes:
If you are running ADALOD UPDATE only to delete ISNs, the size of the TEMP dataset must be calculated as the sum of the calculations in the following three steps:
Part 1 of TEMP dataset contains:
RABN 1 : information for restart
RABN 2 : FCB of the file
RABN 3 - n : DETAB (count of DEs * 116). For example, one element is 116 bytes. The count of DEs is the number of DEs in the FDT.
Part 2 of the TEMP dataset contains the list of ISNs to be deleted, plus the belonging DS-RABNs, 8 bytes per element. Calculate:
(8 * to-be-deleted-ISNs) / (TEMPBLKSIZE - 16) = needed-blocks
Part 3 contains the complete NI:
count NI-BLKS * ASSOBLKSIZE) / (TEMPBLKSIZE - 16) = needed blocks