Availability Guide for Application Design
Increasing the Availability of Tuxedo Applications
Availability Guide for Application Design—525637-004
5-12
Design Implications for NonStop Tuxedo
Applications
Recovery From a Network Failure Between a WSH Process
and a /WS Client Process
If communications failure occurs between a server machine and a client workstation,
then the failure might not be detected until an operation that uses the network is
attempted. The WSH process aborts any outstanding TMF transactions started on
behalf of the client process.
When the client machine comes back online, the client process must reestablish
connections and is responsible for restarting any failed transactions.
Design Implications for NonStop Tuxedo Applications
As with all business applications, the responsibility for correct design of a NonStop
Tuxedo application lies with both development and operations. Listed below are the
concerns that affect development and operations staff.
Development Concerns
Consider the following development concerns when designing a NonStop Tuxedo
application. For programming details, refer to the NonStop Tuxedo System Application
Development Guide.
In workstation client processes:
•
Use the ATMI or TX interface to enclose critical operations within begin-transaction
and end-transaction calls. The program must also save any context that might be
necessary to restart a transaction if a failure occurs in the connection to the server
machine, in the WSH process, or in the server process.
•
Include recovery logic to reestablish the connection and restart any aborted
transactions if a failure occurs.
If error notification came as a result of an attempt to commit a transaction, your
client process has no way of knowing whether the transaction committed or
aborted. When the session is reestablished, you will need to query the server to
find out whether the transaction actually did commit. For example, if your
transaction updated a database record with a specific value, you can read the
value in the database to determine whether the transaction committed.
•
Ensure that the client process is encoded with adequate error-handling
capabilities. Refer to Section 9, Minimizing Programming Errors, for general
information on error handling.
In the server process:
•
Consider the availability effects of using the concept of a service. Choose carefully
the services that you package into the same server; if the server stops, then all the
services it contains also stop.