Guardian Programmer's Guide

Table Of Contents
Using the Sequential Input/Output Procedures
Guardian Programmer’s Guide 421922-014
15 - 63
Handling Retryable Errors
!block^buffer!,
!block^bufferlen!,
ABORT^XFERERR,
ABORT^XFERERR);
.
.
ERROR := READ^FILE(INPUT,BUFFER,RCOUNT);
IF ERROR <> 0 THEN ...
!Process nonfatal error.
The next example clears the ABORT^XFERERR flag:
CALL SET^FILE(INFILE,
SET^ABORT^XFERERR,
0);
.
.
ERROR := READ^FILE(INPUT,
BUFFER,
RCOUNT);
IF ERROR <> O THEN ...
!Process any error.
Handling Retryable Errors
There are several classes of retryable errors:
Errors that require operator intervention
Errors resulting from BREAK activity
Errors that are retried after a delay
Errors resulting from path or device failure
Errors That Require Operator Intervention
Errors that require operator intervention include the following:
For these errors, SIO sends an appropriate message to the error file. If the error file is
not the operator’s console ($0), then SIO expects a reply. The reply can be “S” or
“CTRL/Y” to stop the process, treating the error as fatal. Any other response causes
the process to retry the operation and then continue.
If the error file is on a different system than the device causing the original error, then
SIO sends an additional copy of the message to $0 on the system containing the
device needing intervention.
Error 100 Device not ready
Error 101 No write ring
Error 102 Paper out