加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 重试命令/连接超时是否安全?

发布时间:2020-12-15 21:54:32 所属栏目:百科 来源:网络整理
导读:我们已经使用了一种机制(一个名为SqlDeadlockHelper的类)已经有一段时间了,并且由于死锁而在尝试失败的数据库调用时帮助了我们很多. SqlDeadlockHelper将捕获SqlException,认识到它是一个死锁,然后再试一次.第二次尝试几乎总是成功. 为命令和/或连接超时做这
我们已经使用了一种机制(一个名为SqlDeadlockHelper的类)已经有一段时间了,并且由于死锁而在尝试失败的数据库调用时帮助了我们很多. SqlDeadlockHelper将捕获SqlException,认识到它是一个死锁,然后再试一次.第二次尝试几乎总是成功.

为命令和/或连接超时做这样的事情是否安全?我的意思是,在SQL Server上完成工作是不可能的,只是在数据返回给调用者之前超时,是吗?

编辑:

已经提到交易作为将呼叫视为工作单元的方式.这样它就可以成功或完全回滚.但是,只做一件事的单个ADO.NET调用呢?是否有必要将其包装在交易中?

解决方法

根据您的工作单元,SQL可以在死锁之前完成部分工作并抛出错误.处理工作单元的方式是交易.大多数SQL数据库支持事务.您需要在Begin,Commit和Rollback事务中包含工作单元.

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqltransaction.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读