sha*_*oth 14 .net sql-server reliability azure azure-sql-database
我的Azure角色从数据库中抓取要处理的内容 - 它包含一个实例System.Data.SqlClient.SqlConnection并定期创建SqlCommand实例并执行SQL查询.
现在偶尔(通常是几天一次)运行查询将触发SqlException异常
该服务在处理您的请求时遇到错误.请再试一次.错误代码40143.当前命令发生严重错误.结果(如果有的话)应该被丢弃.
我已经见过很多次,现在我的代码捕获它,呼吁Dispose()对SqlConnection实例,然后重新打开连接和试查询.后者通常会导致另一个SqlException例外
超时已过期.操作完成之前经过的超时时间或服务器没有响应.
这看起来非常像SQL Azure服务器无响应或因任何原因无法使用.
目前我的代码没有捕获后一个异常,它在外部传播RoleEntryPoint.Run()并重新启动角色.重启通常需要大约十分钟,一旦完成,问题就会消失一天左右.
我不喜欢我的角色重新启动 - 这需要一段时间,我的服务功能受到阻碍.我想做一些更聪明的事情.
解决这个问题的策略是什么?我应该多次重试查询多少次以及间隔多少次?我应该做别的吗?我什么时候放弃并让角色重启?
Dav*_*ele 14
这将帮助您处理连接和查询尝试的重试逻辑,我在生产中使用它并且它工作得很好.关于technet的一篇很好的文章可能会有所帮助.
[编辑:2013年10月17日]
看起来这已被瞬态故障处理应用程序块中的模式和实践团队选中
| 归档时间: |
|
| 查看次数: |
5033 次 |
| 最近记录: |