When configuring the JIVE, I found that sometimes ThreadId is not continuous. why? Hey, it turns out that a SequenceManager class is responsible for generating an incremented ID instead of using a database own Sequence, because it is compatible with various databases. All IDs are recorded in the table in JiveID. At the same time, in order to improve efficiency, SEQUENCEMANAGER is not a database of getNextUniqueId () every time, it is a block, and then the new ID exceeds this Block range, then updates the database. ThreadID is here! The JIVE program is written, and the ID BlockSize for Forum / User / Category is 1; thread's blocksize is 10, and the block of Message is 15. So, when I created the first Thread, this ThreadID must be 1, then, as long as I restart Appserver, the next created threadID must be 1 10 = 11. After the JIVE just installed, in order to test Chinese issues, the AppServer is often recapture, so ThreadID is not strange. In fact, as long as you restart an appserver, you have 9/10 probability causes ThreadID to discontinuous. Hey, it doesn't matter, ID is only the only one. Continuous continuous does nothing. Of course, if you have super metamorphosis, it is not a way to make Threadid / MessageID, nor there is no way, just modify the ThreadID and MessageId's blocksize = 1 in SequenceManager.java. Of course, your JIVE performance can be discounted. I am really high yield, PFPF. Thank you picking up the banana's rotten apple, it is not good.