Last update: 6 February 2018 (ad)
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.