SNAX/APC Management Programming Manual

Fault-Tolerant Attributes of SNAX/APC
Communicating With the SNAX/APC Process
2–2 111813 Tandem Computers Incorporated
Fault-Tolerant
Attributes of
SNAX/APC
The SNAX/APC process runs as a NonStop process pair. If the SNAX/APC primary
processor fails while processing a request, the SCP receives a file-system error, such as
211 (CPU performing operation failed during operation). The SCP returns the error to
the application as a file-system error token in a response buffer (ZSPI-TKN-ERROR
contains ZCOM-ERR-FS-ERR; ZSPI-TKN-ERROR within the subsequent error list
contains the file-system error number).
When the primary processor fails, the backup processor takes over and maintains the
file-system connection between the SCP and the SNAX/APC process. Thus, the SCP
can send other requests to the SNAX/APC subsystem, and processing continues
normally.
If the SNAX/APC process has no outstanding requests, the SCP receives no error
notification when the primary-to-backup switch occurs.
File Interface to the
SNAX/APC Subsystem
Although only the SCP process should open $snax/apc-process.#ZSPI, this subsection
provides some background for writers of DSM applications.
Security of Access SCP is the only valid opener of $
snax/apc-process.
#ZSPI. DSM applications must
open SCP, which then opens and communicates with $
snax/apc-process.
#ZSPI.
SNAX/APC maintains this restriction by requiring openers of the SNAX/APC process
to have the super group ID. SNAX/APC rejects open requests that come from any
other user ID.
Multiple Opens and
Requests
There is no limit to the number of outstanding requests to the SNAX/APC process;
however, the operating system imposes a limit of 15 file system requests outstanding
at one time per open.
Close Requests SNAX/APC accepts close requests from SCP. If SNAX/APC has begun processing a
command when a close request is received, execution of the command is allowed to
complete if it refers only to a single object. If the command refers to multiple objects,
only the processing for the current object is allowed to complete; other commands
being queued for action are purged.