TS/MP Pathsend and Server Programming Manual (G06.24+, H06.03+)
Writing Pathway Servers
NonStop TS/MP Pathsend and Server Programming Manual–132500
4-11
Considerations for Debugging Pathway Servers
Considerations for Debugging Pathway Servers
When you are running a Pathway server in debug mode (that is, with the server class
configured with DEBUG ON) or when the server falls into debug mode because of an
error, some situations might cause errors to be returned to the requester communicating
with that server, and in some cases also might cause errors to be returned to other
requesters. Those situations are described in the following subsections.
LINKMON Process and TCP Timeouts
The LINKMON process and the TCP have a built-in five-minute timeout for process
opens and I/O operations such as get-link requests. During normal operation, such
operations are generally completed in less than five minutes unless there is a problem.
However, if the server process is in debug mode, the server can be stopped (for example,
at a breakpoint) for longer than five minutes. In certain cases, this can cause a process
open or I/O operation from a LINKMON process or TCP to time out. The effects of the
timeout depend on what type of operation timed out.
If an I/O operation to the PATHMON process times out, the LINKMON process or the
TCP behaves as if there were a problem with the PATHMON process: that is, it shuts
down communication with the PATHMON process, relinquishing all links granted by
that PATHMON process.
In this situation, if the requester that sent the request that timed out was a Pathsend
requester, this request (as well as all other server-class send requests queued under that
PATHMON process) fails with Pathsend error 902, FEScPathmonConnect, with
file-system error 40 (timeout error). Subsequent send requests to server classes under
that PATHMON process fail with Pathsend error 915, FEScPathmonShutDown.
If the timed-out request came from a SCREEN COBOL requester, this request (as well
as all other server-class send requests queued under that PATHMON process) fails with
a SEND error with a TERMINATION-STATUS value of 18 (PATHMON I/O error) and
a TERMINATION-SUBSTATUS value of 40. Subsequent send requests to server classes
under that PATHMON process fail with a SEND error with a TERMINATION-STATUS
value of 18 (PATHMON I/O error) and a TERMINATION-SUBSTATUS value of 40.
If a timeout occurs on the server process open, the LINKMON process or the TCP
returns the link to the PATHMON process. If other links to the server class exist, no send
requests fail as a result of the open failure. If no other links exist, the send request (as
well as all other server-class send requests queued for that LINKMON process or TCP)
fails. A Pathsend requester receives Pathsend error 904, FEScServerLinkConnect, with
file-system error 40 (timeout error). A SCREEN COBOL requester receives a SEND
error with a TERMINATION-STATUS value of 12 (I/O error) and a TERMINATION-
SUBSTATUS value of 40 (timeout error).
Note also that if the server class is configured so that it can be opened more than once
(that is, with MAXLINKS greater than 1), a LINKMON process or TCP can attempt to
open a server process in that server class at any time. This open attempt can time out if
the server process is being debugged.