Subj : errors and how to fix? To : Oli From : Nil Alexandrov Date : Fri Jan 27 2023 11:08 am Hello, Oli! Friday January 27 2023 16:55, from Oli -> Tommi Koivula Ol> AFAIK JAM has no "unique message identifier" (UMSGID) like Squish. You are right, JAM does not call it UMSGID but you can always have a unique message number by adding the basemsgnum value to otherwise 1-based message number. Well, unless you screw up the JAM database by running a broken purge tool which will reset basemsgnum back to 1. The Husky SMAPI library supports the UMSGID semantic for JAM message base as well. They could have done it more efficiently without reading out the whole index file for renumbering. My min UMSGID would be the basemsgnum. My max UMSGID would be the size of the index file divided by 8 plus the basemsgnum. Ol> If you delete messages in the middle you get holes without Ol> renumbering. Correct and this is expected behavior. A similar problem exists in the Usenet world and NNTP protocol (RFC3977). NNTP has to maintain unique message numbers, so the client can save lastread numbers locally, for example .newrc is the most popular file format for that. NNTP server will report the total number of active messages in the group (similar to "activemsgs" in JAM and "num_msgs" in Squish) and the low and high water mark. What would happen when the message in the middle is deleted? The number of active messages will be decremented but lowest and highest number will stay the same. Deleting from the beginning can be done my increasing the lowest number. Ol> Solution: use Squish (as in the software). Or write/fix the Jam purge tool which will be purging messages from the beginning and adjusting basemsgnum accordingly but keeping the holes in the middle which is by design there. Squish has introduced doubly linked lists, which is a different design solution for removing messages in the middle. Squish has a drawback though, the fixed array of 9 replies messages in the thread. Best Regards, Nil --- GoldED+/LNX 1.1.5 * Origin: -=NIL BBS=- (1:16/101) .