关于数据库的并发控制问题的争论!!----求各位高手评判
<p><font size="2"><span class="javascript" id="text8649103" style="FONT-SIZE: 12px;"><font face="Verdana"> <font size="1"> 最近一公司在为我单位在B/S平台上做生产调度管理,平台是MySQL4.0+J2EE。在测试过程中我发现开发人员没有对数据的并发进行控制。即A、B两个人同时修改一条记录时,二人均可提交成功,且B提交数据后复盖了A修改的数据。 <br/> 本人对此提出异议后,软件开发人员告之,用生产管理系统中的权限管理,就可解决并发控制的问题!!! </font></font></span><span class="javascript" style="FONT-SIZE: 12px;"><font face="Verdana" size="1">我从未听说过此类解决方案,为此我们还发生了激烈的争论。</font></span><span class="javascript" style="FONT-SIZE: 12px;"><font face="Verdana"></font></span></font></p><p><span class="javascript" style="FONT-SIZE: 12px;"><font face="Verdana" size="2"> <font color="#ff0000">请各位高手发言谈谈这个问题,能否使用程序中的权限管理来避免并发的产生!!</font></font></span></p> 数据库没有在处理数据的时候锁定吗?处理的时候在UPDATE时增加检查原始数据试试看。 <p><font face="Verdana" color="#0033ff" size="2">开发人员什么也没管理!</font></p><p><font face="Verdana" color="#0033ff" size="2">说我们的业务不可能产生并发,使用MIS中的权限管理来避免并发的产生!!</font></p> 不好就换啊,要不就只能将就。出现问题手工改…………会累死人的。 我发本贴的目的只是想讨论两个问题: <br/> <br/><span style="COLOR: #0000ff;"> 1.大家在做MIS时是否对并发进行控制; <br/><br/> 2.如果不进行控制,是否使用MIS里的权限管理就可以避免并发的产生。</span> <p>偶没做过类似的,不过如果发生BUG,应该首先从技术上解决这个问题的。</p><p>权限好象不行吧。</p> <p><span style="FONT-SIZE: 12px;">谢谢,<strong><font color="#ff0000" size="3">ehxz</font></strong></span></p><p><span style="FONT-SIZE: 12px;">我也在ITPUB中发了此贴,大家也可去那边看看:http://www.itpub.net/865535,1.html <br/>自从昨天早上那边贴子的地址通知程序的开发人员后,那里突然变得热闹起来了!</span></p><p><span style="FONT-SIZE: 12px;">大家如果有时间的话可以去那边发表一下意见。</span></p> 看了一下,好象这样解决不了啥问题的。一般数据库支持处理这种所谓“脏”数据的处理的,不用从程序上进行管理。 <p><font size="2">在C/S中用PB开发时是不需要写代码来管的。但在三层的B/S中,前后台之间都是通过应用服务器来交换数据的。故会引起“脏读”,若程序不进行控制就会造成<font face="Verdana">B提交数据后复盖了A修改数据的情况。</font></font></p> <p><font size="4">这是个常见的问题. 问题本身也很简单. 解决的方法前人也早就设计好了. 如果数据库学习的"一般"水平, 均都知道如何处理:</font></p><p><font size="4">在编写多用户使用的修改库数据的代码时, 必需注意到有可能出现的并发修改的问题, 和其带来的副作用. 并妥善处理, 防止副作用发生.</font></p><p><font size="4">采取用户权限的方法, 防范这些问题, 不可以</font><font size="1">.</font><font size="2"> (也许可以, <font color="#0000ff">但至少不是个好方法,不是个易于实现的方法. )</font></font></p><p><font size="4">宜<strong><font color="#0033ff">利用数据库本身提供的锁功能, 解决这些问题.</font></strong> </font></p>
[此贴子已经被作者于2007-10-9 16:39:25编辑过]
<p>别人对本题还有另外一种言论,他认为:</p><p> 现实中只要实现权限控制就基本可以满足需求了,并发问题虽然存在但出现的概率太小。而且就算出现,也并不会对系统的运行结果造成什么影响!要知道,如果要实现严格的并发解决方案,系统的吞吐量会降低很多。没必要为了满足那虚无缥缈的需求而去降低性能。<br/> 当然,如果楼主是在电信,银行之类的部门,对数据要求很高那就另当别论,一般生产性需求,根本就没那必要!<br/><strong><font face="Verdana" color="#0033ff"> 请问ehxz,JohnPhan你们同意这种意见吗?</font></strong></p><p><strong><font face="Verdana" color="#0033ff"> 反正以前自己做过的系统中,不管理客户是否要求都进行了并发的控制。</font></strong></p><p></p> <p>"并发问题虽然<strong>存在</strong>但出现的概率太小"</p><p>承认问题的存在, 又不去利用技术解决, 已经是人品的问题了. 为了掩饰错误, 而衍生出的种种借口. 只能用缄默对待了! </p>
页:
[1]
2