ljj_xian 发表于 2007-10-8 23:17:24

关于数据库的并发控制问题的争论!!----求各位高手评判

<p><font size="2"><span class="javascript" id="text8649103" style="FONT-SIZE: 12px;"><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;<font size="1">&nbsp; 最近一公司在为我单位在B/S平台上做生产调度管理,平台是MySQL4.0+J2EE。在测试过程中我发现开发人员没有对数据的并发进行控制。即A、B两个人同时修改一条记录时,二人均可提交成功,且B提交数据后复盖了A修改的数据。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本人对此提出异议后,软件开发人员告之,用生产管理系统中的权限管理,就可解决并发控制的问题!!! </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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff0000">请各位高手发言谈谈这个问题,能否使用程序中的权限管理来避免并发的产生!!</font></font></span></p>

ehxz 发表于 2007-10-9 10:11:45

数据库没有在处理数据的时候锁定吗?处理的时候在UPDATE时增加检查原始数据试试看。

ljj_xian 发表于 2007-10-9 12:31:35

<p><font face="Verdana" color="#0033ff" size="2">开发人员什么也没管理!</font></p><p><font face="Verdana" color="#0033ff" size="2">说我们的业务不可能产生并发,使用MIS中的权限管理来避免并发的产生!!</font></p>

ehxz 发表于 2007-10-9 12:40:10

不好就换啊,要不就只能将就。出现问题手工改…………会累死人的。

ljj_xian 发表于 2007-10-9 12:51:45

我发本贴的目的只是想讨论两个问题: <br/>&nbsp; <br/><span style="COLOR: #0000ff;">&nbsp;&nbsp;&nbsp;1.大家在做MIS时是否对并发进行控制; <br/><br/>&nbsp;&nbsp;&nbsp;2.如果不进行控制,是否使用MIS里的权限管理就可以避免并发的产生。</span>

ehxz 发表于 2007-10-9 13:19:12

<p>偶没做过类似的,不过如果发生BUG,应该首先从技术上解决这个问题的。</p><p>权限好象不行吧。</p>

ljj_xian 发表于 2007-10-9 13:51:42

<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>

ehxz 发表于 2007-10-9 14:59:44

看了一下,好象这样解决不了啥问题的。一般数据库支持处理这种所谓“脏”数据的处理的,不用从程序上进行管理。

ljj_xian 发表于 2007-10-9 15:14:35

<p><font size="2">在C/S中用PB开发时是不需要写代码来管的。但在三层的B/S中,前后台之间都是通过应用服务器来交换数据的。故会引起“脏读”,若程序不进行控制就会造成<font face="Verdana">B提交数据后复盖了A修改数据的情况。</font></font></p>

JohnPhan 发表于 2007-10-9 16:23:06

<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>&nbsp; </font></p>
[此贴子已经被作者于2007-10-9 16:39:25编辑过]

ljj_xian 发表于 2007-10-9 22:30:06

<p>别人对本题还有另外一种言论,他认为:</p><p>&nbsp;&nbsp;&nbsp; 现实中只要实现权限控制就基本可以满足需求了,并发问题虽然存在但出现的概率太小。而且就算出现,也并不会对系统的运行结果造成什么影响!要知道,如果要实现严格的并发解决方案,系统的吞吐量会降低很多。没必要为了满足那虚无缥缈的需求而去降低性能。<br/>&nbsp;&nbsp;&nbsp; 当然,如果楼主是在电信,银行之类的部门,对数据要求很高那就另当别论,一般生产性需求,根本就没那必要!<br/><strong><font face="Verdana" color="#0033ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 请问ehxz,JohnPhan你们同意这种意见吗?</font></strong></p><p><strong><font face="Verdana" color="#0033ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 反正以前自己做过的系统中,不管理客户是否要求都进行了并发的控制。</font></strong></p><p></p>

JohnPhan 发表于 2007-10-11 08:40:45

<p>"并发问题虽然<strong>存在</strong>但出现的概率太小"</p><p>承认问题的存在, 又不去利用技术解决, 已经是人品的问题了. 为了掩饰错误, 而衍生出的种种借口. 只能用缄默对待了!&nbsp;</p>
页: [1] 2
查看完整版本: 关于数据库的并发控制问题的争论!!----求各位高手评判

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com