Jive筆記5--為什麼有時候ThreadID是不連續的 (轉)

amyz發表於2007-08-15
Jive筆記5--為什麼有時候ThreadID是不連續的 (轉)[@more@]在Jive的時候,我發現,有時候threadID並不是連續的。為什麼?
嘿嘿,原來,jive中用了一個SequenceManager類來負責生成遞增的id,而不是採用自己的sequence,因為要相容各種資料庫嘛。所有的id都是記錄在jiveID這個表中。同時,為了提高,SequenceManager並不是每次getNextUniqueID()都update一下資料庫,而是一氣取一個block,然後等新的id超過了這個block範圍,則一下資料庫。
ThreadID不連續的問題就出在這裡!
Jive中寫死了,Forum/User/Category的ID blockSize是1;Thread的blockSize是10,Message的blockSize是15。所以,當我建立了第一條thread,這個threadID一定是1,然後,只要我重新啟動AppServer,下一次建立的threadID一定是1+10=11了。
在剛完畢jive以後,為了測試中文問題等原因,往往會頻繁的重新啟動AppServer,所以,threadID不連續也不足為怪了啦。事實上,只要你每重新啟動一次AppServer,你就有9/10的機率導致threadID不連續。
哎,無所謂啦,ID只要唯一就可以了。連續不連續沒關係的。
當然,如果你超級變態,非得讓threadID/messageID連續,也不是沒有辦法,只要修改SequenceManager.中的threadID和messageID的blockSize=1就可以了啦。當然,你的jive可要打折扣了哦。
偶真是高產啊,pfpf。
謝絕爛香蕉爛蘋果,砸到了花花草草可不好。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-958258/,如需轉載,請註明出處,否則將追究法律責任。

相關文章