COBOL Manual for TNS and TNS/R Programs
Process Initiation, Communication, and
Management
HP COBOL Manual for TNS and TNS/R Programs—522555-006
31-25
Identifying the Message Source
The capability of identifying the source of a message allows a process to respond
differently to the same request coming from different processes or even to reject
certain requests from certain processes.
Example 31-12 uses the MESSAGE SOURCE clause to acquire the message-source
record. It reads messages on $RECEIVE and displays the processor/PIN, process
name, and message code of the message, then displays the message. WHO-SENT-
THAT detects whether the sender has an explicit process name. If the sender had an
explicit process name, the program determines the processor number and PIN and
displays them and the process name.
Example 31-12. MESSAGE-SOURCE Clause (page 1 of 2)
DATA DIVISION.
FILE SECTION.
FD MESSAGE-IN-FILE
RECORD CONTAINS 1 TO 82 CHARACTERS
LABEL RECORDS ARE OMITTED.
01 MESSAGE-IN.
05 SYS-MSG-CODE PIC S9(4) COMP.
05 SYS-MSG-TEXT PIC X(80).
WORKING-STORAGE SECTION.
01 MESSAGE-SOURCE-REC.
05 SYSTEM-FLAG PIC S9 COMP.
05 ENTRY-NUMBER PIC 999 COMP.
05 FILLER PIC X(4).
05 PROCESS-HANDLE PIC X(20).
05 CPU-PIN.
06 CPU PIC S9(2) COMPUTATIONAL.
06 PIN NATIVE-2.
05 ERROR-NUMBER PIC S9(5) COMPUTATIONAL.
05 NULL-PH PIC X(20) VALUE ALL HIGH-VALUES.
01 FILE-DATA.
05 RECEIVE-FILE-STATUS PIC XX.
88 RECEIVE-FILE-OK VALUE "00".
88 RECEIVE-FILE-EOF VALUE "10".
01 PROCESS-NAME PIC X(8).
01 PROCESS-NAME-LEN NATIVE-2.
PROCEDURE DIVISION.
DECLARATIVES.
* --Declaratives are a more powerful way to handle file
* --errors than a simple AT END phrase, and one or the other
* --is required to be present.
HANDLE-INFILE-ERRORS SECTION.
USE AFTER STANDARD ERROR PROCEDURE ON MESSAGE-IN-FILE.
INFILE-ERROR.
IF NOT RECEIVE-FILE-EOF
DISPLAY "RECEIVE FILE ERROR STATUS = " RECEIVE-FILE-STATUS .
END DECLARATIVES.