(A) There are quite a few.
The user can recover from errors at several
levels. At the lowest level, any command that changes content
takes a snapshot of the data before it is changed. Typing OOPS
reverses the last change, all the way back to the first change.
Because the OOPS records remain until
a normal termination or until the passage of the number of days
in OOPS.RETENTION, if VGER or a submodule should abnormally terminate,
the user can recover his work up to, but not including, the last
change made in VGER.
Simply type RECOVER at the LPR,
LIST.EDIT, or VGER command lines. A Select Window will be presented
with a list of all the OOPS records in VGER.OOPS, sorted in descending
sequence by time. The top entry is the state of the item just
before the last change occurred.
Clicking on the correct line brings up
both the oops record and the original item side by side in VGER.
Use the OVL command to overlay the item with its last oops
record, and resume your work.
The before-change OOPS records are stored
in VGER.OOPS. When a VGER session ends normally, or as a part
of LPR start-up, OOPS records are automatically deleted. On normal
termination of VGER, all OOPS recrds for that session only are
deleted. All other times only those records older than the OOPS.RETENTION
value are deleted.
In a similar manner, whenever an LPR list
is changed in LPR or LIST.EDIT, a before change snapshot is stored
in VGER.OOPS. Typing an OOPS in LPR presents the User with the
available lists stored in VGER.OOPS.
Another recovery feature is AUTO.BACKUP.
The User's Default Record contains a setting called AUTO.BACKUP,
which is either ON or OFF. Please see DEFAULTS.
The AUTO.BACKUP switch determines whether
a changed record is backed up before filing in VGER. When on,
the original of a changed record is written to VGER.OOPS before
the new record value is filed.
While all the change OOPS records exist
only until a normal exit from VGER, the AUTO.BACKUP records remain
in VGER.OOPS for the number of days specified in OOPS.RETENTION.
Using the AUTO.BACKUP command without
arguments will display the current value of the switch setting.
While in VGER, the AUTO.BACKUP records
can be accessed via the NOOPS command. This command opens
a new window for the selected OOPS record for the active window.
If more than one record exists, a select window is presented.
When needed, the BACK feature establishes
a more permanent backup. Using the BACK command for any library
"sourcename" creates a backup library called "sourcename.BACK",
if one does not already exist.
In LIST.EDIT, the BACK command will create
a backup of the record indicated by the placement of the cursor.
In VGER, BACK backs up the record in the ACTIVE window. The record
is backed up after a confirmation message, and its LPR list is
updated.
The routine will perform the following
checks: 1) Search for the required argument(s); 2) All specified
files must exist; 3) The source record must exist.
If the best known good copy of any library
or record is the backup copy, the RESTORE command will
restore the specified library/record from the associated backup.
The ACTIVE window is overlaid by the backup copy. If one or more
copies exist, a selection screen comes up. Upon selection and
confirmation, the ACTIVE window is replaced. This operation is
recorded in the OOPS record, so it can be reversed.
In addition to the automatic backups,
and the explicit backups BACK and BAK, there are several commands
to move items out of VGERBP, but to not delete them. These commands
are TEMP (move to the VGERBP.TEMP file) and INACTIVATE
(move to the VGERBP.INACTIVE file). ARCHIVE and INACTIVE are synonyms
for INACTIVATE.