These are recommendations for developing client applications that operate effectively on Microsoft® Windows NT® Clustering Service clusters:
However, transaction-based applications (for example, database servers such as SQL Server) usually require additional modification so that if the server fails, loss of transactional integrity is prevented and transactions are rolled back. Design client applications with database recovery and error checking in mind.
If the client and server have a common state (for example, open cursors, session variables, or data in tempdb), failover is not transparent to the client. In these cases, design an application to inform the user that the connection was lost or reset, or to reestablish its connection to the server automatically.
When the cluster begins failover, the client program receives an error on the database connection. The error encountered depends on what the client program is attempting to do at that time.
The database on the failed server of the cluster is shut down and restarted on the remaining node, where it recovers the databases. If a client attempts to connect to the server while a database is being recovered, the client receives a waiting for database recovery error and should retry after a short pause.