TS/MP Pathsend and Server Programming Manual (G06.24+, H06.03+)
Examples
NonStop TS/MP Pathsend and Server Programming Manual–132500
B-58
Nested Server Example
* IF PATHSRV-REQUEST SPECIFIES A SERVER CLASS, THEN A PATHSEND
* REQUEST IS MADE TO A SUBSIDIARY SERVER. THE FOLLOWING GROUP DATA
* ITEMS ARE THE REQUEST AND REPLY MESSAGE LAYOUTS. THE REQUEST IS
* ALWAYS SPACE FILLED BECAUSE THE SUBSIDIARY SERVER IS NEVER ASKED TO
* MAKE A REQUEST OF ANOTHER SERVER.
01 SUBSIDIARY-REQUEST.
03 SUBSIDIARY-SERVER.
05 PATHMON-ASSIGN-NAME PIC X(31).
05 PATHMON-SYSTEM-AND-PROCESS PIC X(15).
05 SERVER-CLASS PIC X(15).
01 SUBSIDIARY-REPLY.
03 REPLY-CODE PIC S9(4) COMP.
03 THIS-SERVER.
05 SYSTEM-NAME PIC X(8).
05 PROCESS-NAME PIC X(8).
03 SUBSIDIARY-SERVER.
05 SYSTEM-NAME PIC X(8).
05 PROCESS-NAME PIC X(8).
03 TMF-ABORT-REQUIRED PIC X.
03 ERROR-MESSAGE.
05 PATHSEND-ERROR PIC X(78).
05 FILE-SYSTEM-ERROR PIC X(78).
03 NON-SEND-ERROR-MESSAGE PIC X(78).
* THE FOLLOWING FLAG INDICATES THE SUCCESS OR FAILURE OF A CALL TO
* SERVERCLASS_SEND_. "Y" MEANS SUCCESS. "N" MEANS FAILURE.
01 WS-SERVERCLASS-SEND-OKAY PIC X.
/
PROCEDURE DIVISION.
DECLARATIVES.
DECL-MESSAGE-IN-FILE SECTION.
USE AFTER ERROR PROCEDURE ON MESSAGE-IN-FILE.
MOVE "MESSAGE-IN-FILE" TO WS-LOGICAL-FILE-NAME.
MOVE WS-FILE-STATUS TO WS-FILE-STATUS-ERROR-MESSAGE.
DECL-MESSAGE-OUT-FILE SECTION.
USE AFTER ERROR PROCEDURE ON MESSAGE-OUT-FILE.
MOVE "MESSAGE-OUT-FILE" TO WS-LOGICAL-FILE-NAME.
MOVE WS-FILE-STATUS TO WS-FILE-STATUS-ERROR-MESSAGE.
DECL-ERROR-LOG-FILE SECTION.
USE AFTER ERROR PROCEDURE ON ERROR-LOG-FILE.
MOVE "ERROR-LOG-FILE" TO WS-LOGICAL-FILE-NAME.
MOVE WS-FILE-STATUS TO WS-FILE-STATUS-ERROR-MESSAGE.
END DECLARATIVES.
0000-MAINLINE.
* THIS PARAGRAPH CONTAINS THE OVERALL LOGIC OF THE PROGRAM. AFTER
* INITIALIZATION, $RECEIVE IS READ. IF THE READ IS SUCCESSFUL, THE
* REQUEST MESSAGE IS PROCESSED IN 0200-PROCESS-TRANSACTION AND THE
* REPLY (PATHSRV-REPLY) IS WRITTEN TO $RECEIVE. $RECEIVE IS THEN READ
* AGAIN. THE LOOP CONTINUES UNTIL A CLOSE IS RECEIVED FROM THE