[JSP ] 关于同步存取的问题(抽号码牌)

楼主: u9423504 (缘投农夫)   2014-07-23 22:42:49
各位好:
请教以下的问题:
想用JSP写一个类似抽取号码牌的程式。
目前的需求是让使用者登入JSP的网页,再由
使用者按Get的Button 系统会产生一个图形的‘编号’
。编号格式会是KKC03001。KKC代表的是电工类的图形,03代表的是103年度
,后面3码即是流水号的编码。
若甲取得系统给的KKC03001号码后,系统会把此编号写入数据库。
之后若有乙按Get Button,系统会先select数据库,得知目前最新的编号后
再计算产生KKC03002的号码给乙并把此号码再写入数据库。
会把图形编号写入数据库是因为使用者申请那些图号都要记录,日后方便查询。
现在,问题来了,若同时有多人上线申请图号要如何解决多人同时存取资源
所造成的冲突呢?!也就是说,若同时有50人来申请图号,这50人要能都取
到号码,不能有取到‘重复’的号码。
作者: andymai (人生只有一次)   2014-07-23 23:52:00
既然都要写入数据库了~那就让数据库产生就好了?
作者: pupuliao (pupu)   2014-07-24 00:44:00
用 自动编号的功能?另外 现在新的数据库 都有一次只能有一个人读写table的功能
作者: swpoker (swpoker)   2014-07-24 09:37:00
平行运算的第一个问题就是同步存取的问题这个就是要提供排队的机制~至于方式有很多啦用DB去做比较简单~但如果是作业用synchronized就好啦但使用要小心点就是~要注意同步的范围及效能
作者: PttTime   2014-07-24 19:19:00
做一个Table 里面只有号码 要一次就加一 update回去
作者: abola921 (南港金城武)   2014-07-31 06:35:00
PostgreSQL本身有sequence,只要 select nextval('___')依您的范例,在这之前会先create sequence("KKC03")修正create sequence "KKC03"

Links booklink

Contact Us: admin [ a t ] ucptt.com