We will be restoring a database from an ADASAV and running ADARES REGENERATE to roll the database forward to a known point. Between the ADASAV being taken and the point to whch we wish to recover, there was a batch REORFILE utility run, with SORTSEQ.

I understand that ADARES REGENERATE will stop processing this file number and return a cc=4 when it encounters the utility checkpoint. The question is: is it safe to skip rerunning the utility, and after the ADARES REGENERATE has completed for the rest of the database, can an extra ADARES REGENERATE be run for that file only, from the SYNP 1A (not with the “include” parameter) checkpoint belonging to the REORFILE.

I believe the REGENERATE works at an ISN level not a block level, and that REORFILE keeps the ISNs, so can I assume that this is safe? (We really don’t want to have to rerun the REORFILE if we don’t have to).

Also, will the SYNP 1A checkpoint be written out when ADARES REGENERATE stops processing the file so that we will know where to start regenerating from after the utility?

Any replies - even half an answer - would be welcome!

Hi Frances,

reordering a file with SORTSEQ=DE might delete records out of the file depending on the DE you specified. If this is the case you need to re-run the ADAORD in any case before you commence with the recovery process.

For the other possibilities, i.e. SORTSEQ=ISN or without SORTSEQ following applies:

The changes to the ASSO which have been made by ADAORD are irrelevant for ADARES, ADARES only passes logical descriptor value tables to the nucleus.

The changes to the Data might be relevant, because ADAORD can store records in different DS blocks as previous and ADARES does pass DS block information over to the nucleus to speed up the ADARES processing.

Before passing DS block information ADARES will compare the timestamp on the plog with the timestamp of the actual FCB. If the timestamp of the FCB is greater (younger) than the plog timestamp then ADARES (which is the case if you re-do the ADAORD) will not pass the DS block information to the nucleus. Instead the nucleus will determine the DS block through the addressconverter (AC).

If you omit the ADARES then the timestamp on the FCB will not be greater (younger) than the plog timestamp and ADARES would pass the DS block information, this is critical and should be avoided, the file will most likely become inconsistent.

But it is possible to force ADARES not to pass DS block information to the nucleus and this is done when the ADARES parameter PLOGDBID is specified. It is no matter if this parameter shows the same value which would have been determined automatically, essential is that you specify this parameter.

Summing up: you can omit the ADAORD job if you specify the parameter PLOGDBID in the extra ADARES job.