如果我正在为将使用 SQL Server 集群的环境进行开发,我应该注意什么(如果有的话)?
从我所见,我应该处理数据库操作的异常并有两个选择:
- 向用户显示“重试”。到用户重试时,故障转移节点应该已经启动。
- 等待几秒钟,然后重试,而不通知用户。
它是否正确?这就是我需要做的吗?
这是一个 ASP.NET 应用程序,但我认为这不会对这种方法产生巨大影响。
任何意见,将不胜感激
邓肯
如果我正在为将使用 SQL Server 集群的环境进行开发,我应该注意什么(如果有的话)?
从我所见,我应该处理数据库操作的异常并有两个选择:
它是否正确?这就是我需要做的吗?
这是一个 ASP.NET 应用程序,但我认为这不会对这种方法产生巨大影响。
任何意见,将不胜感激
邓肯
只需重试连接就足够了。当一个实例处于故障转移过程中并且我们的应用程序打开了一个连接时,会发生以下情况:
在这种情况下,您只需要尝试重试连接。如果您的 SQL 服务器通常响应速度很快,您可以尝试将连接代码包装在一个数据库调用在 30 秒后超时的类中,但在该类中,使用较短的超时并重试几次。这将使您的整个应用程序只需进行一次调用,并在需要时允许内部连接有时间进行故障转移。
不过,网络名称和 IP 地址的转换是无缝的,因此如果发生故障转移,您无需执行任何特殊操作即可恢复 - 只需重新连接并继续运行即可。但请记住,任何正在进行的事务都将被回滚,因此如果在断开连接时您有任何正在运行的东西,您需要在新节点上重新提交它。