Synchronized object space versioning
Synchronized object space versioning might be enabled when running databases with more than one object space (otherwise it behaves similar to database versioning). Synchronized object space versioning makes sense, when the database contains relationships, that pass object space borders, i.e. links between instances belonging to different object spaces.
In order to activate synchronized versioning, the DBVersion utility or Database::versioningMode() might be called.
In order to create a new version, a new version number can be assigned by calling Database::createVersion(). Each version request will create a new consecutive version number on database level -the database version. Thus, version numbers represent a temporal order, since lower versions are older than higher versions.
In order to upgrade the object space to a version number between the current object space version and the last database version, the object space version may be upgraded by calling ObjectSpace::updateVersion(). New versions for subordinated object spaces are not automatically created.
// DBVersion Utility: set version mode
DBVersion.exe c:\Sample\sample.dat mode -M:SP
// set version mode from within a program: Database dbh;
... fragment ( Database &dbh ) {
dbh.versioningMode(synchronizedObjectspace);
}