并发更新冲突的处理--

并发更新冲突的处理--

ID:22556832

大小:62.00 KB

页数:10页

时间:2018-10-30

并发更新冲突的处理--_第1页
并发更新冲突的处理--_第2页
并发更新冲突的处理--_第3页
并发更新冲突的处理--_第4页
并发更新冲突的处理--_第5页
资源描述:

《并发更新冲突的处理--》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、并发更新冲突的处理>>声明:这里只对并发冲突做简单的分析,所以在前面冠以“浅谈”二字,希望大家可以从中看到一般的处理方法和注意的事项,如果有什么疏漏,那也相当地自然,毕竟本人水平有限,还有很多需要提高的地方,希望各位朋友不吝指正!一.为什么会产生并发在我们使用ado.对数据库中数据进行操作时,很有可能这种操作或类似地操作也在网络内其他用户中进行着,那么就难以避免地会遇到更新操作失败的情况。因为为了更好地提高性能,ado.采用了断开连接的方式。也就是说要先把数据的副本读取到客户端,那么也容易引起多个用户同时更新一

2、条记录产生数据并发异常。这个操作,很可能是其他用户删除了该行记录,也可能是修改了某个字段。这个问题是个高级话题,也一直是数据操作中的难点。在下面我只做简单地讨论和分析。二.解决方案通常处理并发冲突的方法有两个。一个是保守式并发处理,一个是开放式并发处理。所谓的保守式并发处理,就是使用锁使某条记录被读出后就一直被锁定,直到该用户提交更新。它的坏处正如它的名字一样,相当地保守。因为如果该用户读完该条数据后就因为有事情而离开或者忘记了来点“更新”操作,那么其他用户要一直等待,直到他回来或者被提醒或者自己想起来。很明显

3、,这不是我们想要看到的(当然,在特定的要求和条件下该方法也有它的优点,否则它也没有存在的必要了)。相反,开放式并发是我们所要讨论的重点,这个也是ado.推荐使用的方法。什么是开放式并发处理方法呢?我自己的理解就是要面对并发异常的出现,制定处理方法来解决或者提示用户这种异常的出现。既然并发不可避免,那么我们就要作好处理并发冲突的解决方案。这就象一个乐观的人一样,他有了疾病,他的心态依然是乐观向上的一样,他要把重点放在如何治疗上而不是彻底地避免(这个比喻可能不太恰当,见笑了!呵呵)。在写程序前要考虑到并发出现的可能

4、,根据自己的需要来选择更新逻辑和方式。12345678910...下一页>>>>>>这篇文章来自..,。三.浅论开放式并发处理的要注意的地方。(这里也是最容易引起问题的地方,大家要多提意见啊!)1.更新方式的选择一般来说,更新方式有缓存更新和立即更新两种。缓存更新,就是使用dataadapter.updte()方法来进行数据的更新。我们可能在datagrid中修改了很多记录,而只进行一次提交,那么这种操作如果从读取数据开始(或上次更新操作)算起所距离的时间越长,也就越容易引起并发冲突。相对来说,立即

5、更新,也就是使用mand.executenoquery()方法,直接来提交对一条记录的修改应该比较快捷,但仍然不能完全避免冲突的出现,但仍然是我推荐的方式。2.更新逻辑的选择更新逻辑:我理解的就是按照哪种更新的方式来对数据进行更新操作。它可以是包含所有列的;可以是只包含主键列的;可以是包含主键列和被更新列的;可以是包含主键列和时间戳列的。我们来看这4中更新逻辑的差异。如果你以前用过Pb来进行编程,那么可能你理解起来就相对容易。因为pb里面的三种更新逻辑和这里的有很多相似的地方。为了更好的说明问题,我们来举一个例

6、子。有表table1(id,name,sex,address,salary,tamp)上一页12345678910...下一页>>>>>>这篇文章来自..,。其中的tamp是时间戳列。那么对应的更新逻辑为:(1)updatetable1setid=?,name=?,sex=?,address=?,salary=?soNormalstyle="MARGIN:0cm0cm0pt65.25pt;TEXT-INDENT:-38.25pt;mso-list:l1level2lfo2;tab-stops:lis

7、t65.25pt">(2)updatetable1setid=?,name=?,sex=?,address=?,salary=?soNormalstyle="MARGIN:0cm0cm0pt65.25pt;TEXT-INDENT:-38.25pt;mso-list:l1level2lfo2;tab-stops:list65.25pt">(3)updatetable1setid=?,name=?,sex=?,address=?,salary=?soNormalstyle="MARGIN:0cm0cm0pt65.2

8、5pt;TEXT-INDENT:-38.25pt;mso-list:l1level2lfo2;tab-stops:list65.25pt">(4)updatetable1setid=?,name=?,sex=?,address=?,salary=?soNormalstyle="MARGIN:0cm0cm0pt27pt">我们来对这4上一页12345678910...下一页>>

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。