Accessing older database entries
Reading instances or collections for older versions depends much on the versioning scope. In order to access older instances or collections, one may call one of the version setting functions (setAccessVersion(), previousVersion() etc.). All those functions will set the required version number for a property or versioning scope.
The required version is the version number, for which database entries are valid. The current version of database entries may have lower version numbers when not being updated for a while.
Setting access versions for versioning scopes (database, object space, owner and instance scope) remains unchanged until it will be switched explicitly by the application. When the versioning scope is database or object space scope, the access version has to be set explicitly by calling ObjectSpace::version().
In order to select a version for accessing extents, one may change the object space access version. One cannot access extents for different access versions within an object space simultaneously.
The version will be set automatically, when the property handle is not the scope owner and the scope owner (upper property handle, database or object space) changes the current access version. This is the case when calling one of the functions for setting the access version for a versioning scope, when changing the selection for property handles, which are scope owner or when creating new versions.
The access version will not be changed, when calling Property::updateVersion().
Considering property handle hierarchies, access versions may be changed temporarily for each property handle, but the access version will change, when any upper versioning scope changes its access version.