Guardian Application Conversion Guide

Being Opened by and Communicating With a High-PIN Requester
Converting Pascal Applications
6–28 096047 Tandem Computers Incorporated
System Message -103 (Process Open). Check bit 15 of
sysmsg
[7] of the process-open
message (or ZSYS_DDL_SMSG_OPEN.Z_FLAGS if you use the ZSYSPAS file), which
indicates whether the opener is a primary or backup process:
Primary open (
sysmsg
[7] bit 15 is 0): Add an entry in your opener table for the
process.
Backup open (
sysmsg
[7] bit 15 is 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 ZSYSPAS 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:
status := REPLYX (reply_buffer,
write_count,
count_written,
message_tag,
error_return);