Jive筆記5--為什麼有時候ThreadID是不連續的 (轉)
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。
謝絕爛香蕉爛蘋果,砸到了花花草草可不好。
嘿嘿,原來,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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 什麼是介面?為什麼使用介面? 什麼時候使用介面?(轉)
- request.getParameter("name")什麼時候獲取的引數是null,什麼時候為""空字串Null字串
- session是什麼時候建立的Session
- 什麼時候用有狀態session bean,什麼時候用無狀態session bean (轉)SessionBean
- 【前端筆記】Vuex 是什麼,為什麼需要前端筆記Vue
- Jive筆記7 -- Jive的硬傷 (轉)筆記
- 什麼是hibernate懶載入?什麼時候用懶載入?為什麼要用懶載入?(轉)
- session的狀態什麼時候是snipedSession
- 為什麼訪問Java applets的時候顯示的卻是純文字(轉)JavaAPP
- 讀取的img的格式是uint8什麼時候轉化為float32是合理的?UI
- Haskell程式設計精華:什麼時候該註釋,什麼時候不該註釋Haskell程式設計
- 為什麼有時候spring mvc的interceptor會執行兩次SpringMVC
- webpack筆記——hook執行時call的是什麼Web筆記Hook
- EJB2.0中什麼時候用local interface,什麼時候用remote interface (轉)REM
- 什麼時候你不應該使用微服務微服務
- 為什麼編譯的時候提示不支援BerkeleyDB2.x(轉)編譯DB2
- 在JavaScript中什麼時候使用==是正確的?JavaScript
- 為什麼程式設計師在學習程式設計的時候什麼都記不住?程式設計師
- WebSocket 是什麼原理?為什麼可以實現持久連線?有點懵!!!Web
- 為什麼編譯的時候把mod_cookies編譯進去了,但是cookies還是不能(轉)編譯Cookie
- 為什麼寫程式碼的時候聽音樂?
- 為什麼寫程式碼的時候聽音樂
- 為什麼win10電腦有時候自動進入休眠Win10
- C++中什麼時候用move,什麼時候用forward?C++Forward
- 技術管理進階——為什麼Leader的話有時候你聽不懂
- 為什麼js有時候無法獲取圖片的寬度和高度JS
- grub為什麼會在訪問某些scsi硬碟的時候掛起(轉)硬碟
- jquery裡面的$(this)和this都什麼時候用,有什麼區別jQuery
- 我安裝JIVE,在setup時,按繼續候,出現錯誤。
- 筆記本千萬不要用固態硬碟是為什麼 買筆記本不要加固態硬碟是什麼原因筆記硬碟
- 為什麼編譯的時候把mod_cookies編譯進去了,但是cookies還是不能用(轉)編譯Cookie
- 你是什麼時候”突然”學會程式設計的程式設計
- 4 張動圖解釋為什麼(什麼時候)使用 Redux圖解Redux
- 請教:Jive中的moderate是什麼意思?
- 什麼時候釋出
- 什麼時候呼叫layoutSubviewsView
- Jive筆記8--查詢的Bug (轉)筆記
- 什麼是遷移學習?什麼時候使用遷移學習?遷移學習