[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