COBOL Manual for TNS and TNS/R Programs

Process Initiation, Communication, and
Management
HP COBOL Manual for TNS and TNS/R Programs522555-006
31-21
Simple Server Example
*****************************************************************
A-INIT.
OPEN INPUT MESSAGE-IN SYNCDEPTH 1
OUTPUT MESSAGE-OUT
INPUT PHONE-BOOK SHARED.
*****************************************************************
C-EOJ.
CLOSE MESSAGE-IN
MESSAGE-OUT
PHONE-BOOK.
B-TRANS.
READ MESSAGE-IN.
* Declarative handles EOF
IF RECEIVE-FILE-STATUS = "00"
IF NAME-LOOKUP OF MESSAGE-IN
PERFORM B-01-NAME-LOOKUP-PROC
ELSE
IF PHONE-LOOKUP OF MESSAGE-IN
PERFORM B-01-PHONE-LOOKUP-PROC
ELSE
MOVE SPACES TO PHONE-REPLY-MSG
MOVE BAD-REQUEST-REPLY TO BAD-REPLY-CODE OF MESSAGE-OUT
...
IF RECEIVE-FILE-STATUS = "00"
WRITE PHONE-REPLY-MSG
ELSE
WRITE BAD-REPLY-MSG.
B-01-NAME-LOOKUP-PROC.
MOVE LOOKUP-NAME OF MESSAGE-IN TO PH-EMPLOYEE-NAME
START PHONE-BOOK KEY IS = PH-EMPLOYEE-NAME.
IF NOT PHONE-FILE-OK
MOVE START-FAILED-REPLY TO REPLY-CODE OF MESSAGE-OUT
ELSE
READ PHONE-BOOK
IF PHONE-FILE-OK
PERFORM B-02-COPY-TO-REPLY
ELSE
MOVE NONE-FOUND-REPLY TO REPLY-CODE OF MESSAGE-OUT
...
B-01-PHONE-LOOKUP-PROC.
MOVE LOOKUP-NUM OF MESSAGE-IN TO PH-EMPLOYEE-PHONE-NUM.
START PHONE-BOOK KEY IS = PH-EMPLOYEE-PHONE-NUM.
IF NOT PHONE-FILE-OK
MOVE NONE-FOUND-REPLY TO REPLY-CODE OF MESSAGE-OUT
ELSE
READ PHONE-BOOK
IF PHONE-FILE-OK
PERFORM B-02-COPY-TO-REPLY
ELSE
MOVE NONE-FOUND-REPLY TO REPLY-CODE OF MESSAGE-OUT
...
B-02-COPY-TO-REPLY.
MOVE PH-EMPLOYEE-PHONE-NUM TO LOOKUP-NUM OF MESSAGE-OUT.
MOVE PH-EMPLOYEE-NAME TO LOOKUP-NAME OF MESSAGE-OUT.
MOVE OK-REPLY TO REPLY-CODE OF MESSAGE-OUT.
Example 31-9. Simple Server (page 4 of 4)