GDSX (Extended General Device Support) Manual
Design and Development
Extended General Device Support (GDSX) Manual—529931-001
2-36
Takeover Processing
this attempt fails, another attempt will be made after 15 seconds. This process
continues, with the time between attempts increasing to 30 seconds, then 45 seconds,
then 60 seconds, and so on, until the time between attempts reaches 10 minutes
where it remains until a backup is successfully created. (If the backup process fails for
some reason, the same process occurs as the primary attempts to create a new
backup.)
If the primary process failed due to CPU failure, the steps just described start 30
seconds after the CPU is reloaded.
In the backup process TSCODE calls user exits in the following order:
1. USER^INIT^CONFIG^PARAMS
2. USER^VERSION
3. USER^INITIALIZE
Then, in the primary process TSCODE checkpoints data to the backup and calls
USER^BACKUP.
^RECLAIMBUFFER
When a task does a type 2 checkpoint in the former primary, the task has its buffer
images copied to different addresses in the former backup. In the new primary,
therefore, any memory pool buffer addresses that the task stored in its data stack are
no longer valid.
A task recovers its buffer images by making calls to ^RECLAIMBUFFER. This
procedure is passed (by reference) the word pointer to the data as it was allocated in
the primary process. The task’s last checkpoint block in the former backup’s extended
memory of size TASKCPSIZE is searched for an address match. When one is found,
space in the specified buffer pool is allocated and the data image is copied. Finally,
the word pointer in the task’s stack is updated to point to the new location of the data.
For more information, see the description of the ^RECLAIMBUFFER procedure in
Section 8, Service Routines
.
A Second Takeover
When designing a GDSX application, consider what happens if a takeover occurs, and
then a second takeover occurs before a task checkpoints.
Caution. Following a takeover, if a task does not recover all its buffer images before it does a
type 2 checkpoint, those buffers not reclaimed are lost.
Caution. Following a takeover, if a task recovers its buffer images with ^RECLAIMBUFFER
but does not do a type 2 checkpoint before a second takeover occurs, after the second
takeover the task’s buffer images are lost.