B/S业务程序中由于“并行”引起的问题的解决方法(高分)
在B/S结构中作业务处理程序,由于许多人同时进行操作属于相同或不同的程序,可能出现如下的情况:
A在进行产品设计修改,该产品设计修改可能引起物料清单的变化进行进行采购计划的调整(可能是数据减少,如删除某中产品结构的数据的时候),而在产生采购计划数据减少的操作前,B在对采购计划执行采购任务的分配,把不同的采购计划条目分给采购员,当数据减少的操作完成后,B还在进行采购计划的分配,而这些在分配的数据中可能已经不存在,这个时候对这些数据进行处理就会引起问题;比如采购计划分配的操作是把采购计划复制到采购任务中,那么就会出现采购任务里面有的东西在采购计划中不存在的情况,因为在进行复制前,采购计划已经不存在,而在客户端是存在的。
在ASP里面如何来解决这种问题?
1:用“锁”来解决,让分配采购计划到采购任务的工作和修改采购计划的工作串行工作,这样可以从原理上解决事情,但存在锁就存在解锁的问题,当进入页面加锁后,客户端出现异常情况,如自己关机怎么办,如何解锁?
2:在采购计划分配的执行的时候,执行采购计划数据的验证,并在验证和执行的时候采用事务来进行处理,这样又存在这种情况:B辛苦的执行采购计划分配,但执行的时候才发现数据已经更改了,工作白做
3:定时刷新的方法,通过一个隐藏域不断的更新数据,依旧不是一个很好的办法,轮询始终存在着时间间隔里面可能出现问题的危机。
请问各位,有好的解决思路和方法吗?