两个用户是否都发生并发异常

本文关键字:并发 异常 是否 用户 两个 | 更新日期: 2023-09-27 18:36:46

如果用户编辑了数据记录,而另一个用户同时编辑了相同的记录并且都保存了。

1.) 并发异常是否总是只发生在一个用户身上?

实际上,第一个获胜,但在技术方面谁是第一个是合乎逻辑的......两个用户都有可能出现这种异常吗?

2.)那个为时已晚的人,现在得到了并发异常,我想他可以访问

来自其他用户的新更新数据记录是吗?

两个用户是否都发生并发异常

在 SQL 服务器的默认隔离级别Read committed

如果并发请求访问对象,则 sql Server 会为它们创建队列并逐个处理它们。第二个用户将等待用户 1 完成任务的预定义时间,如果无法在该时间范围内完成任务,则会引发错误。此时间范围可在 sql 服务器和 ADO.net 中配置。

这完全取决于 sql 服务器中定义的 isloation 级别,无论您是否要并发访问。

阅读有关数据库中隔离级别的更多信息

1)我认为是的。一个总是比另一个早;没有其他办法可以解决这个问题。因此,一个更新将正常工作,另一个更新将引发并发异常。

这可能取决于您使用的数据访问方法,可能有一些系统可以更优雅地处理这种情况。但我怀疑有些系统会给两个用户相同的例外,而不是你故意建立这种行为。

正如Adam Houldsworth所说:这也可能取决于你自己编码的方式。您可以检查多个用户是否开始编辑同一记录,然后将异常抛给这两个用户。但我不相信这是你真正在问的。㞖;我误会了。

2)当然这是可能的,但这取决于您在应用程序中构建。只需捕获并发异常并刷新用户 B 尝试更新的任何编辑表单。然后,他/她可以重试。一般来说,很明显;我不知道你情况的具体情况。