TMF Application Programmer's Guide (G06.26+)

Designing Single-Threaded Processes
HP NonStop TMF Application Programmer’s Guide522419-005
2-14
The Implications of REPLY
A server is only allowed to call ABORTTRANSACTION when it is participating in an
active transaction: that is, when the server’s current transaction is not nil. Once the
server issues a reply to the requester, the server no longer has the ability to abort the
transaction. If a server calls ABORTTRANSACTION when the current transaction is in
the nil state, the call completes with an error number 75 (no transaction identifier) in
the status variable.
Backout and Volume Recovery Anomalies
Anomalies occur when the backout process undoes certain changes made by an
aborting transaction, or when volume recovery undoes certain changes made by an
aborted or incomplete transaction.
The insertion of a record at the end of an unstructured file is not undone. The
inserted record stays in place, and the end-of-file (EOF) is unchanged. This
procedure preserves records that other transactions might have written to the end
of the file after the aborting transaction.
The insertion of a record into an entry-sequenced file is undone by rewriting the
record with a length of 0 bytes. This procedure preserves the positioning of
records that other transactions might have inserted into the file after the aborting
transaction.
The insertion of a record at the end of a relative file is undone by deleting the
record, but leaving the EOF unchanged. This procedure preserves records that
other transactions might have written to the end of the file after the aborting
transaction.
The Implications of REPLY
A reply message from a server indicates that the server is through with the work
request. Furthermore, unless the server has previously called ABORTTRANSACTION,
a reply message signifies that the server has agreed to commit the transaction. The
server will not be notified of the transaction’s eventual outcome.
When a single-threaded server issues a reply, the server’s current transaction reverts
to the nil state. If the server attempts to lock or change the content of an audited file
while the current transaction is in the nil state, the file system rejects the particular I/O
request with a condition code of CCL and an error number 75 (no transaction
identifier). This situation will persist until the server either accepts another work request
from $RECEIVE or (acting as a requester) initiates a new transaction by issuing a
BEGINTRANSACTION call.
NonStop Servers
In the TMF environment, there is no need for NonStop servers.
If a server process fails while working on one or more transactions, TMF automatically
aborts the affected transactions. When the associated requesters learn that their