A系统是演唱会订票系统,B系统是付款系统,负责处理A系统和银行之间的,收钱。退钱的操作。
B系统式多线程的。也就是A系统请求付钱。B系统在验证合法性后,一方面起线程调用银行的API,等返回结果后又起一线程来发通知给A系统(A系统的servlet)做一些更新数据库的操作。
A系统有自己的业务tranxAppID,B系统有tranxID与tranxAppID。
在退票页面。有个确认页面。当你同时打开两个窗体同时点到确认页面后,断点设在B系统调API之前,uA先点,后uB再点,uB会报错,因为uA已经把A和B系统的那个tranx标志为退款的了,那么uB的那个操作就会退回到A中,并且把A数据库中的tranx标志设为null,后来你再让uA执行,那么银行扣钱是成功了。当发通知给A系统时,银行A系统的按个tranx被设为null了。。所以A系统就返回错误给B,那么B认为A没操作成功,就不停的发通知(达到一定数停止),
还有就是以个tranx定2个演唱会的票,那么在退某个票的时候,执行上面的操作就会一张票扣两次钱,下次你再扣另外一张就没钱扣了。。这是很严重的问题,
关键就是在如何避免uA uB两个页面同时操作的问题, 问题的解决方案就是versuonNum的简单解决方案,在页面隐藏version值,在点YES按钮 按照version更新表中的值,如果成功证明没人动过这个记录。否则有人已经先动了。就不会调B系统。这样问题就解决了。
饶了一大圈。。还是回归到了最简单的解决方案。。。哎。。
分享到:
相关推荐
假设某计算机的指令长度为20位,具有双操作数、单操作数和无操作数三类指令形式,每个操作数地址规定用6位表示。 (1)若操作码字段固定为8位,现已设计出m条双操作数指令,n条无操作数指令。在此情况下,这...
众所周知,Windows9x操作系统所使用的FAT32文件系统与WindowsNT操作系统的NTFS文件系统是互不兼容的。尤其当你安装了Windows9x后又试图安装WindowsNT...u大师在本文中介绍了如何解决安装Win9x和WinNT双操作系统的问题?
matlab开发-双操作程序。ESMEPROCESS功能DICOM图像操作,包括查看、绘制、写入和统计。
风河强化 VxWorks和Linux双操作系统平台战略.pdf
如何安装Win98和Linux双操作系统.pdf
为了使双操作系统之间互相独立,不相互依赖,避免了一个系统崩溃,另一个系统也不可以用,以至于系统无法快速恢复。双系统独立被引导启动话,按默认主引导记录,查找激活分区来启动方式,是无法独立引导双系统的。...
手把手教你安装Ubuntu XP双操作系统
这是介绍怎么装双操作系统的文档,有助于大家学习和掌握怎么装双操作系统
面向双操作者的六足机器人共享遥操作.pdf
安装双操作系统的问答.docx
基于ARM的双操作系统.pdf
安卓手机如何安装双操作系统.pdf
window7和windowXP双操作系统安装教程,透彻有用,详细具体,是一份很好的资料!
怎么备份和恢复双操作系统.docx
如何安装双操作系统[整理].pdf
行业资料-交通装置-一种双操作系统的音频数据处理方法和装置.zip
风河强化VxWorks和Linux双操作系统平台战略.pdf
Windows Linux双操作系统实验室的建立与维护.pdf
风河强化VxWorks和Linux双操作系统平台战略 (1).pdf