CX_OBJECT_MANAGER

Class hierarchy
Description:

The object manager is an abstraction, which separates physical features for saving objects from the remaining  ClassiX® architecture. The object manager controls,

 

The object manager generates, deletes and copies persistent objects.

Code example:
...

Method List (MDI)
Function MA* Parameter Return Brief description
CheckOStoreVersion   STRING   Checks, if the required ObjectStore version is installed on client and server, e.g. "ObjectStore Release 6.0 Service Pack 8". If this is not the case, a problem report appears. This problem report causes a program abort in the startup window. This prevents access to another, unwanted database version.
ClearClientCache       "Empty" client cache, to create comparable conditions for performance test
CollectObjects   INTEGER, INTEGER COLLECTION pools all objects of the class. specified with the first parameter, in a collection
... further information and differences
CollectObjects2   INTEGER, INTEGER COLLECTION
CollectObjects3   INTEGER, INTEGER, INTEGER, INTEGER COLLECTION
CollectOrphans   INTEGER, STRING COLLECTION collect objects for physical deleting -
... further information and differences
CollectOrphans2   COLLECTION, STRING COLLECTION
CopyPersObject   OBJECT, INTEGER, INTEGER, VECTOR<STRING> OBJECT behaves just like the homonymous InstantView® command; additionally, data fields can be excluded from being adopted into the copied object (examples)  
CopyREPCollection   STRING, STRING, INTEGER   generates a copy of the collection, which is connected to  REP 'name(old)' and connects it to REP 'name(new)'
GetREP   INTEGER, INTEGER, INTEGER COLLECTION provides access to an REP while avoiding the currently set layers and the currently set domain
CreateReserveSegments   INTEGER    
DataFields     COLLECTION man erhält alle im ClassiX®-System vergebenen Datenfeld-Namen und ihre Verwendung, d.h. Member welcher Klasse(n) / dynamisches Datenfeld / Specifier 
DebugShowReloptQueue       display internal data structure
DestroyAllSegTables        
GetCacheSize     INTEGER returns database cache size
GetClusterInfo   ein (in der Datenbank gespeichertes) Objekt CXS_CLUSTER_INFO-Objekt information on segment and cluster, in which the object is stored
GetClusteringObject     OBJECT  
GetDataBases     COLLECTION all databases
GetDBUtility     CX_DB_UTILITY provides database utility object 
GetLayers     COLLECTION layers and domains, represented by CXS_LAYER, CXS_DOMAIN
GetMetaClass   INTEGER OBJECT meta classes for class 'classID'
GetMetaClasses     COLLECTION all meta classes
GetObjectsInSegment   STRING, INTEGER, INTEGER COLLECTION provides all objects in a specific segmen part, see also CXS_SEGMENT::GetObjects
GetObjectsReferringTo   OBJECT, STRING COLLECTION object cross reference must be generated before with the  utility program cxxosr.exe
GetOStoreVersion   INTEGER STRING Ermittelt die ObjectStore-Version des lokalen Rechners (Parameter = 1) oder des Datenbankservers (Parameter = 0). Bei einem Fehler (ObjectStore nicht gestartet, Datenbankserver nicht erreichbar) liefert die Funktion einen Leerstring zurück, ansonsten die Version, z.B. "ObjectStore Release 6.0 Service Pack 8"
GetReadLockTimeout     INTEGER default is 1 min
GetRootClass     OBJECT meta class for CX_CLASS
GetSegments     COLLECTION all segments
GetServers     VECTOR<OBJECT> information on all ObjectStore servers
GetSessions     INTEGER  
GetStartDirectory     STRING  
GetUnassignedAddressSpace     INTEGER  
GetWriteLockTimeout     INTEGER default is 1 min
Instantiate   OBJECT,OBJECT OBJECT Instanziiert ein Objekt, das noch als "lazy creator" existiert, in der Nähe eines anderen. Bsp.: obj masterObj GetManager(OBJECT) Call(Instantiate) -> obj
Wichtig ist die anschließende Zuweisung an die Variable, die das Objekt ursprünglich hielt, denn die Lazy-Creator-Hülle hat nun keine Bedeutung mehr
IsRegistered   OBJECT INTEGER  
LinkAtPosition   OBJECT, STRING, STRING, OBJECT, OBJECT, INTEGER   Just like link, but collection entry to different position
LookUpMetaInfo   STRING, INTEGER OBJECT Are meta data stored in the database?
flag = 1 - Database-layout (classes, files, storages, segments ...)
flag = 2 - system dictionary (dynamic data fields, index info... )
flag = 4 - enumeration table
flag = 8 - locales

The entry parameter indicates the relevant meta data; the output flag displays via allocated bits in the coding shown at the top, which meta data out of the queried ones had been found in the database. LookUpMetaInfo shows the existence of meta data for database layout and/or system dictionary, even if these data haven't been used at system start (if SystemDB has not been set accordingly)

MakeAllSegmentsVisible       Der Objektmanager "kennt" nach dem Systemstart alle aktiven Segmente, d.h. Segmente, in denen neue Objekte erzeugt werden können. Inaktive Segmente (in denen keinen neuen Objekte mehr angelegt werden) entstehen durch Segment-Splitting. Nach Aufruf dieser Funktion enthält die Segmentliste des Objektmanagers alle in der Datenbank existierenden Segmente.
MaxLayers     INTEGER provides number of layers
MoveREPCollection   INTEGER, STRING   move REP collection according to the indicated segment
NewDatabase     CXS_DATABASE create database interactively (exacmple)
NewMetaClass     CX_META_CLASS generate dummy class interactively (example)
NewREPCollection     CXS_REP_COLLECTION generate REP collection interactively (example)
NewSegment     CXS_SEGMENT generate segment interactively (example)
NumberOfReserveSegments     INTEGER  
QueryDomain   OBJECT INTEGER all objects that have been derived from CX_EXPANDABLE know their domain
QueryLayer   OBJECT INTEGER The database layer, in which an object is stored is found. This is only possible for (according to the clustering strategy). Otherwise, the result is - 1
QuerySegment   OBJECT CXS_SEGMENT-Objekt provides the segment, in which the object is stored
ReleaseAddressSpace       The address space, used since calling SetAddressSpaceMarker last gets released. The function does nothing (no-operation) if
- SetAddressSpaceMarker has never been called before
- when calling an InstantView® level > 0
ReleaseAddressSpace2   INTEGER    
RenameREP   STRING   rename root entry point: generates REP 'name(new)' and connects to the REP value 'name(old)'. Dies geschieht in allen physischen Datenbanken - passend zu AutoLayer 
RenameREP2   STRING, STRING, STRING   just like RenameREP, but only in the physical database indicated as a parameter.
If the database path is indicated via environment variable, (see CLASSIX.INI), it is also possible to pass the variable name instead of the path as the parameter.
RepairREPCollection   INTEGER, STRING, INTEGER   Repairs the REP collection of the class classID. The new REP collection is generated in the segment seg. Bei garb=0 wird die existierende REP-Collection als Vorlage benutzt, bei garb=1 die REP-Garbage-Collection. Die Reparatur ist nichts anderes als ein Kopieren aller Zeiger von der alten in die neue REP-Collection, wobei Zeiger auf Nicht-Objekte übersprungen werden.
ResetFetchPolicy   INTEGER   reset fetch policy to default
ResetFetchPolicy2   STRING   reset fetch policy to default
ResetGlobalFetchPolicy       reset global fetch policy to default
ReturnMemory   OBJECT    
RestoreCollection   COLLECTION, STRING COLLECTION copies a saved collection with SaveCollection into the collection passed in the 1st parameter. If ZERO gets passed, this brings up the persistent collection (from the ScratchPad segment)
SaveCollection   COLLECTION, STRING COLLECTION generates a persistent collection in the database (in the  ScratchPad segment) and copies the collection passed in the parameter into this collection. Dabei wird ein Name vergeben (2. Parameter)
SaveEnumTables   STRING   store enumerations tables from a CX_ENUM_TABLE object file in database

empty string as file name called: all enumeration tables known to the system are saved

SaveMetaInfo   STRING, INTEGER OBJECT write meta information in specified segment,
flag = 1 - database layout (classes, files, storages, segments ...)
flag = 2 - system dictionary (dynamic data fields, index info... )
flag = 3 - both

if required, a segment is generated with the indicated name (example)

SessionSwitching     INTEGER  
SetAccessHook   file name, type name(Vector)   capture performance data per object access from ObjectStore 6.0 no longer supported !
SetAddressSpaceMarker       Der ab jetzt weiter verbrauchte Address-Space can be released with the following function call ReleaseAddressSpace. The function only works when calling from InstantView® level 0, otherwise lik no-operation.
SetClusteringObject   OBJECT OBJECT  
SetFetchPolicy   INTEGER, INTEGER   set fetch policy for a segment
SetFetchPolicy2   STRING, INTEGER   set fetch policy for a segment
SetGlobalFetchPolicy   INTEGER   set global fetch policy
SetLockTimeout   INTEGER, INTEGER   how long it is necessary to wait for a page, intervals in ms
SetSessions   INTEGER    
SetTXNPriority   INTEGER   bei Dead-Lock wird immer die TXN mit kleinerer Priorität abgebrochen, Default-Wert ist 0x8000
SlotXref       Don't use! Replaced by utility cxxosr.exe.
generates a cross reference of all dynamic data fields used in the database (example)
SplitSegmentsImmediately        
UpdateMetaInfo       write meta object, that have been written into the database with the functions NewMetaClass, NewDatabase, NewSegment, NewREPCollection
Where   object (stored in the database) CXS_SEGMENT-Objekt information about the segment, in which the object is saved
* MA = member access function,
highlighted in gray = inherited function

Data Directory (DDI)
Data field Type Reference class I* Brief description
internalName STRING      
superClass POINTER CX_META_CLASS    
realWorldClassID SHORT      
docu SHORT      
* I = indicateable data field,
highlighted in gray = inherited data field

Application in AppsWH
Module Brief description