gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:46:59 24 4
gpt4 key购买 nike

我们使用一种机制(一个名为 SqlDeadlockHelper 的类)已经有一段时间了,它在尝试由于死锁导致的数据库调用失败时帮助了我们很多。 SqlDeadlockHelper 将捕获 SqlException,识别出这是一个死锁,然后重试。第二次尝试几乎总是成功。

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

编辑:

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

最佳答案

根据您的工作单元,SQL 可能会在死锁和抛出错误之前完成部分工作。您处理工作单元的方式是使用事务。大多数 SQL 数据库都支持事务。您需要将工作单元包装在开始、提交和回滚事务中。

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

关于c# - 重试命令/连接超时是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18080477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com