A system and method for performing client-server transactions includes an
application interface, located at a client, which manages connections
between the client and a server. The application interface receives a
request from an application program, opens a connection with the server,
sends a message that includes the request over the connection, and holds
the connection open for at least a timeout period. If the application
interface receives another request destined for the server during the
timeout period, it sends another message with the new request over the
open connection. If the application interface receives one or more
requests that are part of a transaction, the application interface
assigns a transaction identifier to the transaction. The transaction
identifier and a sequence indicator are included in each message with
each request. At the server, a transaction manager receives the messages,
sequences the requests based on the sequence indicators, and processes
the requests in the indicated sequence. If the application interface
receives a redirect request from the server in response to a message, the
application interface sends the message to another server identified in
the redirect request without involving the client application.