TS/MP 2.5 Pathsend and Server Programming Manual
The ACS Subsystem ROUT processes open of the server process is shared among all the Pathsend
requestor processes running in the same processor as that of the ACS subsystem ROUT process.
Therefore, a close does not necessarily occur when the communication with a particular requestor
process is finished.
Server Stop Protocol
A Pathway server must stop itself when the ACS subsystem ROUT process or the TCP closes it on
behalf of the last requestor that has a link to it. Otherwise, the PATHMON process considers the
server process to be in the PENDING state.
Handling of Messages from $RECEIVE
COBOL85 servers always perform all the I/O for the request message most recently read from
$RECEIVE and always reply to that message before reading another message. For simplicity, this
is the protocol servers must follow in most cases.
If you do need to write a multithreaded server or a context-sensitive server that performs queuing
of messages from $RECEIVE, you must write this portion of your server program in a language
other than COBOL85.
Pathsend Requestor Failures
A Pathsend requestor process can fail for reasons that include these: the requestor process calls
ABEND, a processor fails, or someone stops the process.
When a Pathsend requestor process fails with outstanding I/O operations, the effect is similar to
that of a failure of any Guardian process with outstanding I/O; that is, all outstanding I/O
operations are canceled, including those for outstanding server-class send operations. As a result,
the target server process might get cancellation messages related to the outstanding calls to
SERVERCLASS_SEND_, SERVERCLASS_DIALOG_BEGIN_, or SERVERCLASS_DIALOG_SEND_.
However, the target server process does not get a close message, as it would have from a Guardian
file-system open. Except in the case of a processor failure, the links that the ACS subsystem ROUT
process established with server processes on behalf of the Pathsend requestor are maintained,
because these links are shared. Therefore, servers must monitor cancel messages, rather than close
messages, to determine when a pending reply is no longer needed.
When a requestor fails, all transactions initiated by that requestor but not yet completed at the time
of the failure are automatically aborted.
ACS Subsystem Process Failures
If a halt occurs in the processor where ACS subsystem processes are running, all the Pathsend
requestors in that processor fails. See the previous subsection for details about requestor failures.
The links that the ACS subsystem processes established with the server processes are relinquished.
ACS Subsystem Failures
If the ACS core processes fail or are stopped on a processor, the links that the ROUT process
established with the server processes are relinquished.
Linkage Space Considerations
If the server allocates too little space for $RECEIVE messages, system performance can be adversely
affected, and the requestor can get errors at peak workload times. To avoid this problem, the
number of links specified by the server (for example, in the COBOL85 RECEIVE-TABLE OCCURS
clause) must be greater than the value specified in the SET SERVER MAXLINKS parameter in
PATHCOM. The specified number of links of the servers must be large enough for all openers,
including requestors from other PATHMON environments that specify associative servers and from
outside the Pathway environment (for example, operations applications).
62 Writing Pathway Servers










