在asp.net网站上,我们有enry表格,管理员可以访问。
有多个管理员可以进入。如果所有管理员同时打开并从表单中选择一些组合框值,那么我们如何保持并发
因为一旦第一个管理员从combox中选择值并保存,那么该值应从数据库中删除。
但是,如果让两个或三个管理员同时保存相同的值,那么并发问题怎么解决呢。
正确的地方代码在哪里或在数据库中?怎么样?
答案 0 :(得分:1)
您应该阅读有关乐观并发控制的内容。真的可以归结为在乐观,悲观和最后一场胜利之间做出选择。通常正确的选择是乐观的,除非这是一个非常耗时的过程,最终另一个用户的失败将令人沮丧。
至于正确的位置,您需要告诉您当前如何使用数据访问代码。您还在使用什么数据库?
This article会为您提供一些入门信息。
答案 1 :(得分:0)
在我们的应用程序中,我们处理它们:
我们所有的更新都通过更新存储过程。 当“修改”字段,即mandetory,比给定的字段更新时,这会出现错误。错误是由代码中的特殊异常类引发的,您可以将其识别为并发异常。
E.g:
答案 2 :(得分:0)
实现并发性的常用技术是使用时间戳进行更新,作为开发人员根据业务流程编写代码。通常情况下,您选择的是:最后一个获胜,因此最后一次写入获胜,通知用户冲突并让他们选择是否要提交更改,或合并更改的值。
这最后一种技术在数据库中并不常见,因为它意味着用户提交了一组值,但更新了不同的集合,这可能会让他们感到惊讶(同样,它需要复杂的规则)。如果您考虑一些源控制提供程序的工作方式,您可以看到它是如何实现的。
在删除操作的情况下,没有必要担心,因为两个用户删除相同记录真的很重要吗?第二个没有效果。