TS/MP Pathsend and Server Programming Manual (G06.24+, H06.03+)
Writing Pathsend Requesters
NonStop TS/MP Pathsend and Server Programming Manual–132500
3-5
Programming for Failure Recovery
Pathsend Programming and the TMF Subsystem
The Pathsend procedure calls support TMF transactions. Calling a Pathsend procedure to 
start a server-class send operation propagates the current transaction identifier, if any, to 
the server process. If the Pathsend procedure call fails, use of the TMF subsystem allows 
your application to abort the transaction and retry the call. As an application developer, 
you do not have to be concerned about the role of LINKMON processes in the 
propagation of transaction identifiers.
If you use the TMF subsystem, you should check for errors after each call to the 
BEGINTRANSACTION, ENDTRANSACTION, ABORTTRANSACTION, and 
RESUMETRANSACTION procedures. Failure to perform these checks could cause 
important parts of your application to fail. If a server error occurs during a TMF 
transaction, the requester should explicitly abort the transaction (even though in some 
cases, the transaction might already have been aborted). For further information, 
including a list of the file-system errors that can be returned by each of the TMF 
procedure calls, refer to the NonStop TM/MP Application Programmer’s Guide.
When designing and coding your application, you should pay attention to whether or not 
your Pathsend requests are in transaction mode. For example, your application should 
not be in transaction mode while using Pathsend procedure calls to make requests to 
subsystems whose operations are not TMF protected, such as the spooler.
Instead, do the following:
1. Save the value of the transaction identifier.
2. Suspend the transaction by calling the RESUMETRANSACTION procedure with a 
tag value of 0.
3. Make the subsystem request.
4. Resume the transaction by calling the RESUMETRANSACTION procedure with a 
tag value equal to the saved transaction identifier.
Attempting to send to a server class configured with the TMF parameter set to OFF fails 
with Pathsend error 917 (FEScServerClassTmfViolation) if the requesting process has a 
current transaction. The NonStop TS/MP System Management Manual describes how to 
set the TMF parameter in the PATHCOM SET SERVER command.
Fault-Tolerant Programming
The following paragraphs describe issues related to the use of Pathsend procedure calls 
in fault-tolerant programs and discuss the appropriate levels of recovery that your 
application can perform after takeover by a backup Pathsend process.
For Pathsend calls that are protected by the TMF subsystem, on takeover the new 
primary process must determine whether the current transaction ended or aborted. If the 
transaction aborted, the new primary process can retry the entire TMF transaction. That 
is, the backup process can begin a new TMF transaction and reissue the Pathsend calls. 
This retry mechanism relies on the TMF subsystem’s capability to back out all work that 
the server process carried out on the original request.










