Guardian Application Conversion Guide
Being Opened by and Communicating With a High-PIN Requester
Converting TAL Applications
096047 Tandem Computers Incorporated 3–51
System Message -103 (Process Open). Check the process open
sysmsg
[7].<15> bit (or
ZSYS^DDL^SMSG^OPEN.Z^FLAGS if you use the ZSYSTAL file), which indicates
whether the opener is a primary or backup process:
Primary open (
sysmsg
[7].<15> bit = 0): Add an entry in your opener table for the
process.
Backup open (
sysmsg
[7].<15> bit = 1): Process a backup open as follows:
1. Get the process handle for the primary opener from the process-open system
message (-103). This process handle is in
sysmsg
[8] for ten words (or the
ZSYS^DDL^SMSG^OPEN.Z^PRIMARY field if you use the ZSYSTAL file).
2. Use the process handle to search your opener table for the corresponding
primary-process open entry. If you find this entry but there is no backup open
yet (the backup process handle is null), add the backup process handle to the
table entry.
3. If the primary-process open entry is not found, reject the backup open with a
file-system error greater than 9.
System Message -104 (Process Close). Delete the opener-table entry for this process. You
should receive a process-close message from each process of a process pair.
Reading and Processing Status-Change Messages
If one of your openers has a CPU failure, or if its system fails or becomes partitioned
from your system because of a network failure, you do not receive a process-close
message (-31). Therefore, when maintaining an opener table, your server might read
and process these status-change messages:
-2 CPU down: local CPU failure after the process called MONITORCPUS
-8 Change in status of network node
Continue to read system message -2. In addition, read these new status-change
messages (all of which supersede C-series system message -8):
-100 Remote CPU down
-110 Loss of communication with node
-113 Remote CPU up
To receive system messages -100, -110, and -113, first call the MONITORNET
procedure with the
enable
parameter set to 1.
Replying to a System Message
Your server might reply to a system message using the Guardian REPLY[X]
procedure:
CALL REPLYX (reply^buffer,
write^count,
count^written,
message^tag,
error^return);