TS/MP Pathsend and Server Programming Manual (G06.24+, H06.03+)

Examples
NonStop TS/MP Pathsend and Server Programming Manual132500
B-60
Nested Server Example
0200-PROCESS-TRANSACTION.
* THIS PARAGRAPH PROCESSES ONE MESSAGE FROM $RECEIVE. THE FORMAT OF
* THE MESSAGE IS PATHSRV-REQUEST. FIRST THE PATHSRV-REPLY MESSAGE IS
* INITIALIZED. THE SYSTEM AND PROCESS NAME OF THE CURRENT SERVER
* PROCESS ARE ALWAYS RETURNED TO THE REQUESTER IN THE PATHSRV-REPLY
* MESSAGE.
*
* IF THE SUBSIDIARY SERVER CLASS IS SPECIFIED IN THE REQUEST, THEN A
* PATHSEND SEND IS DONE TO THAT SUBSIDIARY SERVER CLASS.
MOVE SPACES TO PATHSRV-REPLY.
MOVE ZERO TO REPLY-CODE OF PATHSRV-REPLY.
MOVE "N" TO TMF-ABORT-REQUIRED OF PATHSRV-REPLY.
MOVE WS-PROCESS-NAME OF WS-MY-PROCESS
TO PROCESS-NAME OF THIS-SERVER OF PATHSRV-REPLY.
MOVE WS-SYSTEM-NAME OF WS-MY-PROCESS
TO SYSTEM-NAME OF THIS-SERVER OF PATHSRV-REPLY.
* IF SERVER-CLASS IN SPECIFIED IN THE REQUEST MESSAGE THEN PROCESSING
* IS DONE TO PREPARE FOR A PATHSEND SEND TO A SUBSIDIARY SERVER.
IF SERVER-CLASS OF PATHSRV-REQUEST NOT = SPACES
MOVE "Y" TO WS-VALID-PATHSRV-REQUEST
PERFORM 0440-VALIDATE-PATHSRV-REQUEST
IF WS-VALID-PATHSRV-REQUEST = "Y"
* IF THE PATHMON-ASSIGN NAME IS SPECIFIED, THEN THE PATHMON SYSTEM
* AND PROCESS NAME IS LOOKED UP IN THE TABLE OF ASSIGNs. THIS PATHMON
* SYSTEM AND PROCESS NAME IS USED FOR THE PATHSEND SEND.
IF PATHMON-ASSIGN-NAME OF PATHSRV-REQUEST NOT = SPACES
PERFORM 0450-LOOKUP-PATHMON-ASSIGN
ELSE
* IF THE PROGRAM LOGIC ARRIVES HERE, THEN AN ASSIGN TO IDENTIFY THE
* PATHMON IS NOT SPECIFIED. (IF AN EXPLICIT PATHMON SYSTEM AND
* PROCESS NAME ARE SPECIFIED THEN THEY WILL BE USED FOR THE PATHSEND
* SEND.)
IF PATHMON-SYSTEM-AND-PROCESS OF PATHSRV-REQUEST NOT = SPACES
MOVE PATHMON-SYSTEM-AND-PROCESS OF PATHSRV-REQUEST
TO WS-PATHMON-PROCESS-NAME OF WS-SERVERCLASS-SEND-PARAM
ELSE