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