TS/MP Pathsend and Server Programming Manual (H06.05+, J06.03+)
There is no comparable mechanism to indicate that a server process coded in TAL, pTAL, or
FORTRAN should not run as a process pair. If you have server processes in these languages that
are coded as process pairs, you can either implement a custom PARAM or recode your server.
Transaction Deadlocks
An application that uses the TMF subsystem might hold more record locks and hold them longer
than it would without the TMF subsystem because:
• Implicit locks are held on the keys of deleted records.
• Implicit locks are held for inserted records.
• Locks are held until the transaction is either committed or aborted and backed out.
The increased locking could cause new possibilities for transaction deadlock. If transaction deadlock
might become a problem, consider implementing the methods for coping with deadlock discussed
in the Guardian Programmer’s Guide.
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
these subsections.
LINKMON Process and TCP Timeouts
The LINKMON process or the ACS subsystem processes 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, the ACS subsystem processes, 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, the ACS subsystem
processes, 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 TERMINATIONSTATUS 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, the ACS subsystem processes,
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, the ACS subsystem processes,
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
Considerations for Debugging Pathway Servers 69










