Suprtool and Concurrent Access

Suprtool gives either one of the following warning messages when it completes the task of reading a dataset while other users are adding or deleting records:
New entries were added to the dataset.
Suprtool may have ignored some dataset entries.
...... or
The number of dataset entries was reduced.
Suprtool may have included some deleted dataset entries.

Probably the best way to determine the seriousness of these warnings is to understand how Suprtool reads the datasets. The logic is different for masters and details.

Master Datasets:

Suprtool has no way of knowing how entries are distributed in a master dataset. As it would be inefficient to read to the capacity of the dataset when all the entries are clustered near the beginning, Suprtool first gets the entry count for the set, adds 100 to that number, then reads serially until that number of records has been read. It then checks the entry count again, and if the entry count has changed, Suprtool returns one of the warning messages shown above.

So it is possible for Suprtool to miss new entries, if they were added either to a location that Suprtool has already read or to the end of a file when more than 100 entries have been added. It is also possible that Suprtool might miss original entries near the end of the file, if more than 100 new entries have been added to locations that Suprtool has already read, or if a deleted entry causes a migrating secondary entry to migrate back to its primary location "over" Suprtool's read location. (This is true of any application that does serial reads.)

If you want to force Suprtool to always read to the end of the file, use Set Eofread On. This is good practice for master datasets because it ensures that original entries are read, except possible migrating secondaries. The only way to be absolutely sure that all entries are read would be to disallow concurrent changes by specifying Mode-4 on the Base command.

Detail Datasets:

Very old versions of Suprtool followed a similar logic for detail datasets, in establishing an entry count prior to starting the serial read, and stopping after that number of entries had been read. In version 3.3.2 (circa 1991), Suprtool's default was changed to always read to the dataset's highwater mark. It still checks the entry count before and after reading, and it returns the appropriate warning message if the count changes because the task's output file may contain either records that were subsequently deleted from the dataset or some entries that were added after the commencement of the task. Also, if the dataset's highwater mark were increased, the very newest entries would be missed. Again, Set Eofread On would ensure that Suprtool does not stop prematurely, but could be expensive in terms of performance for datasets with a large capacity and small entry count.
[Hans Hendriks]

....Back to the Suprtool Q&A Page