Guardian Programmer's Guide

Table Of Contents
Introduction to Guardian Programming
Guardian Programmer’s Guide 421922-014
1 - 15
Monitoring Server Processes
Monitoring Server Processes
A monitor is a separate process that, along with other functions it might be performing,
monitors and controls the execution of other processes. Because server processes
must continue to run to provide needed services, one common use of a monitor is to
check that each server continues running and to restart any server that stops.
A monitor is often implemented as a process pair to ensure that it survives CPU
failures.
Requesters and Servers in Fault-Tolerant Applications
There are many approaches to making an application fault tolerant. There is no best
method that suits all applications. The best method to use depends on the application
in question.
One common way of making a requester/server application fault tolerant is to run the
server process as a process pair while the requesters run as simple processes. The
primary server process then uses checkpoints to copy critical data to its backup
process to enable a smooth transition if a failure occurs. This design makes sense in
many cases, because it is the server that provides most of the functional logic of the
application.
Another approach to fault tolerance is to have a fault-tolerant monitor process. If a
failure occurs, then the backup process is able to restart each server process on an
alternate CPU, thereby allowing the application to continue with minimal interruption.
Client/Server Application Model
The client/server model, which evolved from the requester/server model, enables the
client to issue commands to the host from a GUI on a PC (see Figure 1-5 below). The
client interface typically has pull-down menus, dialog boxes, color and other features
that provide ease of use. In “fat” client applications, most of the processing occurs on
the PC instead of the host; the client often accesses a database using a
vendor-supplied product (for example, the open database connectivity). In “medium”
client applications, the processing occurs on both the host and the client. In “thin”
client applications, most of the processing occurs on the host. See the Introduction to
NonStop Transaction Processing for more information about the client/server model for
application development.