TS/MP Pathsend and Server Programming Manual (G06.24+, H06.03+)
Writing Pathway Servers
NonStop TS/MP Pathsend and Server Programming Manual–132500
4-6
Writing a Server to Use the TMF Subsystem
information about use of the Enscribe locking facilities, refer to the Enscribe 
Programmer’s Guide.
Servers do not reply to request messages until all work for the request has been 
completed. The contents of the reply message indicate the outcome of the request, which 
is one of the following:
•
All the work for the request was completed successfully.
•
None of the work for the request was completed.
•
The work for the request was only partially completed.
In the first case, the requester can commit the transaction. In the second case, the 
requester can commit the transaction and then retry it. In both of these cases, the 
information in the server’s reply is sufficient to ensure the integrity of the transaction.
However, if the transaction work was only partially completed, as in the third case, the 
server needs to ensure that the transaction is not committed so that the incomplete work 
can be backed out. To ensure transaction backout, the server should call the 
ABORTTRANSACTION procedure after reading the server’s request and before 
sending its reply. A call to ABORTTRANSACTION by the server does not end the 
transaction—only the requester can end it—but such a call imposes the requirement that 
the requester also call ABORTTRANSACTION, rather than ENDTRANSACTION, 
after the requester’s reply.
Writing a Server to Use the TMF Subsystem
If, for some reason, your application does not follow the structure described in 
Recommended Structure for Applications, earlier in this section, you should consult the 
checklist that follows.
Writing a Pathway server to use the TMF subsystem requires that you do the following:
1. Decide which files in the database should be audited.
2. Determine any modifications that are necessary to convert the application to follow 
the TMF subsystem locking rules.
3. Decide how to group sequences of the application operations into TMF transactions 
(that is, units of recovery).
4. Ensure that any fault-tolerant servers respond correctly to file-system error 75: 
REQUESTING PROCESS HAS NO CURRENT-TRANSACTION IDENTIFIER. 
A backup server that takes over in mid-transaction does not have a current-
transaction identifier to send to the disk process; therefore, the disk process returns 
error 75 to the server, which passes the error to the requester. If the requester aborts 
and retries the transaction, the new request has a current-transaction identifier. The 
preferred solution is to change the servers so they are not fault-tolerant servers.
5. Determine whether any new transaction deadlock situations are introduced as a 
result of TMF implicit record locking and modify the application to avoid the 
deadlock. (Transaction deadlock is a situation in which two transactions cannot 










