OpenSwitch monitors several important aspects of communication between an incoming client connections and remote Adaptive Servers:
Transaction state – whether the connection is in the middle of an open transaction.
Communications state – whether the connection is actively communicating with the Adaptive Server.
Connection state – whether the connection is currently established with the Adaptive Server.
If the connection to the remote Adaptive Server is shut down, or the connection is killed, OpenSwitch automatically transfers the connection to the next available Adaptive Server.
At the time of failure, if the client connection is either actively communicating with the Adaptive Server (based upon the communications state), or is involved in an open transaction (based upon the transaction state), the client is issued a “deadlock” message indicating that the client should reissue the last transaction sent. For example:
Msg 1205, Level 13, State 0 Server 'OpenSwitch' Your command (process id #8) was deadlocked with another process and has been chosen as deadlock victim. Re-run your command
If the client connection is idle, the switch to the failover server is completely transparent.
See “Failure detection” for more information.