This article describes how the Fabasoft Components kernel calculates new Object IDs.
When a new object is created the Fabasoft Components kernel asks the Fabasoft Components COO service for the next available Object ID.
The Object ID is the last part of the Object Address, e.g.
Object ID: 170
The Fabasoft Components COO service stores the highest Object ID for each Fabasoft Components COO store in an internal table. This counter is always incremented. Therefore the Object ID of a newly created object should normally always be higher than other objects of the same Fabasoft Components COO store.
But there are special situations where the Fabasoft Components kernel allocates more than one Object ID from the Fabasoft Components COO service and holds a local Object ID cache.
If the Fabasoft Components kernel has a valid Object ID cache for the given store, the IDs for newly created objects are always used from the cache. In this case the Fabasoft Components kernel does not ask the Fabasoft Components COO service for a new Object ID or if the cached Object ID is still valid (because he has allocated these IDs before, so that no one else can use them). This is done due to performance optimization (e.g. for importing data with Fabasoft COLD) .
The Object ID cache is persisted in the COMMITDIR of each Fabasoft Components kernel installation.
Please note that manipulation of the COMMITDIR is not allowed because of possible unexpected behaviors or possible data loss!
Especially the usage of one COMMITDIR for different Fabasoft Components kernel installations is strictly forbidden.
If you plan to clone your server with one or more Fabasoft Components kernel installations (e.g. web server) you have to make sure that all COMMITDIR directories are cleared when the Fabasoft Components kernel installations are stopped before creating the image for the roll out.
- Fabasoft Folio
- Fabasoft eGov-Suite
- Fabasoft eGov-Forms
- Fabasoft eCRM-Suite.