GDSX Manual

Design and Development
Extended General Device Support (GDSX) Manual134303
2-28
Level 1 Fault Tolerance
Level 1 Fault Tolerance
When a task does type 1 checkpointing, its stack images and task control block are
copied to the backup process. After a takeover, such a task is restarted at the instruction
following the last type 1 checkpoint call. The task loses any data held in memory pool
buffers at the time of failure. This is called level 1 fault tolerance. Within a process
some tasks may be doing no checkpointing, in which case TSCODE provides them with
level 0 fault tolerance, while other tasks are doing type 1 checkpointing, providing level
1 fault tolerance.
Level 2 Fault Tolerance
If a task does type 2 checkpointing, its stack images, task control block, and allocated
memory pool buffers are copied to the backup process. After a takeover, such a task is
restarted at the instruction following the last type 2 checkpoint call, and all of the task’s
memory pool data is preserved. This is called level 2 fault tolerance. Within a GDSX
process some tasks may be doing no checkpointing while other tasks are doing type 1
checkpointing, and still other tasks are doing type 2 checkpointing.
Fault-Tolerance Processing in GDSX Initialization
If GDSX is run as a process pair, TSCODE does the following at process initialization
time:
Initializes configuration parameters from default values.
Calls the USER^INIT^CONFIG^PARAMS user exit.
Opens the $RECEIVE file for the GDSX process.
Calls the PROCESS^ASSIGNS user exit once for each ASSIGN command entered
from the TACL prompt before GDSX was started. If no such commands were
entered, this user exit is not called at all.
Calls the PROCESS^USER^PARAMS user exit once for each USERPARAM
defined in PARAM commands entered from the TACL prompt before GDSX was
started. If no such commands were entered, this user exit is not called at all.
Calls the USER^VERSION user exit.
Allocates memory for control blocks, memory pools, stack images, checkpointed
buffers, EMS log message, and so on.
Initializes monitor and listener system tasks. Starts the listener task. If GDSX was
run as a process pair, a backup task is started. There is only one backup task per
GDSX process, and it is always active after it is started. The backup task is
awakened by the kernel when checkpointing or CPU monitoring needs to be done.
Calls the USER^INITIALIZE user exit. Data retrieved from external sources (such
as files) including semaphores that are located in a global data block cannot be
checkpointed in the USER^INITIALIZE user exit, because the backup GDSX
process is not running. Checkpointing this type of data must be deferred until the
USER^BACKUP exit is called.