这几天一直在学习测试编号生成的方法,期间参考了程兴刚老师,jspta老师,飞飞老师的例子,当然还有各位老师的热心跟帖帮助。最初将程老师的代码转为存储过程,但依然存在重号,讨论期间甜版及jspta老师给了很多指导,才得以完成此例。
此最终实例语法思路是否严谨我也不敢保证,但我采用鼠标模拟器及四个虚拟机每5毫秒点击的方式进行了测试,没有再发现重号问题。
另外说明下,如果只是序号递增,几乎没有重号的概率,重号现象主要出现在实际删单后补单的极端情况下。
极端情况的说明,特点是几乎在同一时间有大量新增,保存,删除等各种无序操作时的情况,且客户机及服务器响应不佳时,这种情况多出现在多用户,高并发环境中。(其实多用户,高并发环境不只是单一软件能解决的事)。
发此帖的目的一是为了共享及回报各位老师的帮助。二是希望各位老师能够给予指正,以便找到BUG或更好的方法。
以下内容只有回复后才可以浏览
---------------------12.20 6:22分--------------------------
下午又增大了测试力度,发现还是有重号现象。
因为这此改进了存储过程,增加了回滚及锁定
以下内容只有回复后才可以浏览
---------------------2014.12.22 8:58分--------------------------
在昨天的学习中发现原代码在删除时做的判断不足。
此次改进了程序在删除时做的验证,增加了两个编号回收的存储过程。经过测试,没有再发现重号的问题。
依然不敢保证在大并发或程序出错,或断电时无重号,建议保存记录前再做下重号检测!!!!
此暂时为最终改进版了。
以下内容只有回复后才可以浏览
工作精力有限,暂时没时间再深入的学习了,请老师们多多给予指正,已求最好的方法!
以下为狐表里的代码
[此贴子已经被作者于2014-12-22 10:26:01编辑过]