应该允许哪些SQL错误代码重试?

时间:2016-11-25 06:26:42

标签: c# error-handling sql-server-2014 high-availability

我们有一个SQL Server 2014 AlwaysOn可用性组,我们通过标准C#SqlConnection对象连接到它们。我们希望捕获手动或自动触发故障转移时发生的异常,并在等待一段时间后重试该命令。

我们不只是想重试每个失败的命令,只是因故障转移而失败的事务。

Microsoft是否会生成我们可以检查的错误代码列表(或列表中是否有列表)?

2 个答案:

答案 0 :(得分:0)

它适用于ms sql 2000,但可能是"错误级别"是相同的。我希望,它会帮助你

http://www.developer.com/tech/article.php/724711/Microsoft-SQL-Server-2000-Error-Messages.htm

修改

这里有关于msdn中错误级别的文档:(sql2014) https://msdn.microsoft.com/en-us/library/ms164086(v=sql.120).aspx

答案 1 :(得分:0)

Microsoft已为Azure构建一个瞬态错误检测策略,以便在瞬态故障处理应用程序块中使用。

  

瞬态故障处理应用程序块(Topaz)通过提供处理瞬态故障的逻辑,使您的应用程序更加强大。它以两种方式实现这一点。

     

首先,该块包括以检测策略的形式识别许多常见的基于云的服务的瞬时故障的逻辑。这些检测策略包含内置知识,能够识别特定异常是否可能由瞬态故障条件引起。

他们已经识别出指示瞬态故障的sql错误代码。虽然它针对的是云(对于Azure Sql Server),但我们已经在我们自己的本地环境中成功使用了它。

您可以查看他们的代码并提取您可以检查的SQL代码:

http://topaz.codeplex.com/SourceControl/latest#source/Source/TransientFaultHandling.Data/SqlDatabaseTransientErrorDetectionStrategy.cs