在我迁移到Azure的过程中,我实现在Windows Azure AppFabric的客户顾问团队“TransientFaultHandling框架”。 http://appfabriccat.com/2011/02/transient-fault-handling-framework/SQL Azure重试逻辑框架TransientFaultHandling是否附带默认重试策略?
这是我只是做了我的代码(很容易看起来好得是真实的):
1 /参考Microsoft.AzureCAT.Samples.TransientFaultHandling.dll
在我的项目(带自动导入的命名空间)
2 /设置在一个共同的DLL库,它返回一个共同的政策,公共职能:
Public Shared Function retryPolicy() As RetryPolicy
Dim oPolicy As RetryPolicy = New RetryPolicy(Of SqlAzureTransientErrorDetectionStrategy)(10, TimeSpan.FromMilliseconds(100))
Return oPolicy
End Function
3 /与oConn.OpenWithRetry(retryPolicy())
全部换成oConn.Open()
210个全部换成了别人Reader
,Scalar
,NonQuery
有:
oCmd.ExecuteReaderWithRetry(retryPolicy())
oCmd.ExecuteNonQueryWithRetry(retryPolicy())
oCmd.ExecuteScalarWithRetry(retryPolicy())
4 /这就是它
它的工作原理,我的意思是没有错误,但正在测试我的本地SQL Server,我不知道重试逻辑是否是correc因为我没有意识到测试连接失败的方法,所以实现了Tly。
我读到实施这一TransientFaultHandling框架的几个例子,有的包括用于检测SQL服务器错误代码的自定义创建的类。 我没有创建这样的一个类让事情变得简单,因为我假定框架附带关于重试基于SQL Azure的异常代码的好默认行为。
要提问: - 是我的代码确定在一个典型的SQL Azure的连接失败的情况下?还是我必须设置一个自定义类来自己检测代码异常?
完美!谢谢 ! – kdstack