What Happened to the Content IDs in UCM 11g?
By Kevin Smith on Mar 30, 2011
If you had autonumber enabled (IsAutoNumber=true) for content IDs in UCM 10g you were used to seeing the content ID increment by one each time a new content item was checked in. In UCM 11g this may no longer happen, so don't be suprised if you see gaps in your content IDs.
To find out why keep reading this post.After a few days of checking in content to a new UCM 11g instance I noticed that my content IDs looked like this:
There were gaps in the number portion of the content IDs. I wondered what was causing this to happen. I suspected that it was something to do with the change in the way content IDs and other IDs are generated in UCM 11g.
In 11g, at least when running on an Oracle database, UCM now uses a database sequence to generate IDs instead of using the counters table. This is a really great advancement since the global lock used on the counters table used to create major problems when trying to ingest a large volume of content.
Someone who is smarter than me in the ways of Oracle database told me that the gaps are caused by the fact that the sequence, called IDCSEQDOCID, has a cache size of 200. So every time you start UCM it will pick up 200 values from the database and store them in memory. However, if before the 200 cached values are used up you shut down UCM or the database you will lose all those unused cache values.
If you must have sequential values without any loss in numbers you may need to re-define the sequence with the NOCACHE option. There are performance implications (more so in a RAC environment) if you do use the NOCACHE option, so this is not something I would recommend. The Content ID should really be treated as a meaningless identifier or key to the content item so it should not matter that it does not follow a 1 by 1 progression.
Update: See the comment below. There is no guarantee of gap-free sequence numbers, so don't plan on having your content IDs be gap-free. Like I said in the original post, the content ID should be treated as a meaningless identifier for the content item.