摘要: 在java端調(diào)用存儲(chǔ)過(guò)程的時(shí)候需要存儲(chǔ)過(guò)程串行的執(zhí)行,如果使用synchronized lock在應(yīng)用服務(wù)器突然down掉的情況下會(huì)出現(xiàn)問(wèn)題,因?yàn)閟ession并沒(méi)有立即斷掉,后臺(tái)的存儲(chǔ)過(guò)程還在繼續(xù)執(zhí)行,這樣如果應(yīng)用服務(wù)器立即重啟,再調(diào)用該存儲(chǔ)過(guò)程或者其他需要一起串行化處理的存儲(chǔ)過(guò)程就會(huì)違反同步執(zhí)行的原則,所以我們必須把鎖放在oracle db端,利用oracle鎖機(jī)制來(lái)完成存儲(chǔ)過(guò)程的同步,文章總結(jié)了一下在java端如何使用oracle這個(gè)用戶鎖機(jī)制。 閱讀全文
08 2008 檔案
摘要: 最近要寫message在傳送過(guò)程中狀態(tài)改變的流程,并根據(jù)不同的狀態(tài)作不同的處理,同時(shí)記錄當(dāng)前的狀態(tài)。于是,看了一下?tīng)顟B(tài)模式,發(fā)現(xiàn)還是不太好用,比如狀態(tài)對(duì)象創(chuàng)建的太多了,稍加修改了一下,大概是就是文章中的這個(gè)模樣了:把它分為了“狀態(tài)持有者”, “狀態(tài)對(duì)象“, ”狀態(tài)管理者”, “狀態(tài)機(jī)”等。 閱讀全文
摘要: 主要是要構(gòu)建一個(gè)符合自己需求的的連接池(對(duì)象池)。這個(gè)連接池中所存放的對(duì)象的行為是自定義的并滿足項(xiàng)目實(shí)際應(yīng)用需求的。但是這些對(duì)象的頻繁創(chuàng)建需要很大的代價(jià),比如一些Socket連接。connection-pool所有部分都是基于接口設(shè)計(jì),便于實(shí)現(xiàn)的動(dòng)態(tài)加入和變更。也用到了很多開(kāi)源的framework如commons-pool,commons-beanutils,xmlbeans,commons-net。 閱讀全文