Another important activity for a recovery routine is to attempt
to correct or minimize the error. What the recovery routine actually
does to correct or minimize the error depends on what the mainline
routine is doing and what the error is. Some examples of possible
situations where the recovery routine could take action are the following:
- The mainline routine might be working with a queue of data areas.
The recovery routine might be able to scan the queue and determine
if one or more of the data areas contains information that is not
valid.
For example, one of the data areas might contain an address
that is not valid. Or, the mainline routine might have set up the
data areas with some sort of validating information that could be
checked, and possibly corrected. Certain data areas might have to
be deleted from the queue, or the entire queue might have to be deleted
and rebuilt.
- The mainline routine might be running under a task that is communicating
with another task when an error occurs. The recovery routine might
then take the action of alerting the other task that a problem exists,
so the other task does not wait for any further communication.
- The mainline routine might have initiated I/O, and the recovery
routine might have to ensure that the I/O completes to protect the
integrity of the I/O resources.
- The recovery routine might back out changes made to a database
to ensure its integrity.