GDSX Manual
Design and Development
Extended General Device Support (GDSX) Manual–134303
2-27
Pool Checking
Pool Checking
If the poolcheck^flag (see the DEBUGFLAGS configuration parameter later in this
section) is set, each time a task is dispatched, TSCODE will check the buffer pool,
message pool, extended buffer pool, and extended message pool for corruption. If
corruption is detected, GDSX stops with abend error 230 or 231.
The poolcheck^flag can be set when debugging a program and turned off during
production to allow GDSX to run more efficiently.
Bounds^checking of the DEBUGFLAGS configuration parameter is used to indicate
whether TSCODE is to do bounds checking on buffers used during USCODE service
routine (pseudo procedure and utility procedure) calls. If this bit is set to 1, TSCODE
ensures that all buffers used for I/O are in global or extended memory, not in the
swappable stack. If this bit is set to 0, TSCODE does not check the location of the
buffers used. The default setting for this flag is 0. See also the description of
"CHECK^BUFFER^BOUNDS" on page 8-17.
Fault Tolerance
You can create different levels of fault tolerance by the use of process pairs and
TSCODE-supported checkpointing procedures. GDSX tasks cannot use normal
Guardian checkpointing. Each user task within a GDSX process runs with one of three
possible levels of fault tolerance, depending on the checkpointing done within the task.
Level 0 Fault Tolerance
If GDSX is run as a process pair, TSCODE creates a backup task (task 3) and a GDSX
backup process. Whether user tasks do any checkpointing, the backup task checkpoints
to the backup GDSX process the following items:
•
The initial values for all globals, except those in user-named or private global data
blocks
•
The changing values for control block variables, except task control block variables
•
The changing state of each configured task
The backup process monitors the status of the primary GDSX process and takes over in
case of primary process failure, restarting from the beginning the tasks that were active
at the time of failure and were not doing any checkpointing. For such tasks, context is
lost, and any data held in memory pool buffers at the time of failure is lost. This default
level of persistent operation for user tasks that do no checkpointing is called level 0 fault
tolerance.
Caution. TSCODE does not support the checkpoint facilities for dynamic tasks (those that are
not preconfigured) unless the DYNAMIC configuration parameter is set on. See "DYNAMIC"
on page 2-54.