CX_OBJECT_MANAGER
Klassenhierarchie
- CX_CLASS
- CX_SYSTEM_MANAGER
- CX_OBJECT_MANAGER
- CX_SYSTEM_MANAGER
Beschreibung:
Der Objektmanager ist eine Abstraktion, welche die physischen Besonderheiten der Speicherung der Objekte von der übrigen ClassiX®-Architektur trennt. Der Objektmanager steuert
- in welchem Segment / Cluster ein Objekt gespeichert wird
- in welche RootEP-Collections es eingefügt wird
- wie die Datenbank in physische Teildatenbanken, Layer und Domains aufgeteilt wird
Der Objektmanager erzeugt, löscht und kopiert persistente Objekte.
Code-Beispiel:
Funktion | MA* | Parameter | Rückgabe | Kurzbeschreibung |
---|---|---|---|---|
AnalyzeSegmentLayout 212705 |
INTEGER,INTEGER | CX_JSON_OBJECT | Liefert eine Speicherauswertung des angegebenen Segments nach Slots, Slotwerten, und Objekten. | |
ChangePseudoClass 202338 |
OBJECT, INTEGER | |||
CheckOStoreVersion | STRING | Prüft, ob auf dem Client und dem Server die gewünschte ObjectStore-Version installiert ist, z.B. "ObjectStore Release 6.0 Service Pack 8". Wenn nicht, wird ein Fehler gemeldet. Im Startup-Window bewirkt diese Fehlermeldung ein Abbruch des Programmes, so dass der Zugriff auf eine unerwünschte Datenbankversion verhindert wird. | ||
ClearClientCache | Client-Cache "leer" machen, um für Performance-Tests vergleichbare Bedingungen herzustellen | |||
CloseDatabase | INTEGER | Datenbank schließen. Der Parameter bezieht sich auf die Nummer der Datenbank in classix.ini | ||
ClusterInfo | ein (in der Datenbank gespeichertes) Objekt | CXS_CLUSTER_INFO | Information über Segment und Cluster, in dem das Objekt gespeichert ist | |
CollectInSegment | INTEGER, INTEGER, STRING | COLLECTION | Sammle alle Objekte einer bestimmten Klasse in einem Segment. Objekte von abgeleiteten Klassen werden mit einbezogen | |
CollectObjects | INTEGER, INTEGER | COLLECTION | deprecated - Behandlung AS Overflow ist unzureichend fasst alle Objekte der mit dem ersten Parameter angegeben Klasse in einer Collection zusammen - ... weitere Hinweise und Unterschiede |
|
CollectObjects2 | INTEGER, INTEGER | COLLECTION | ||
CollectObjects3 | INTEGER, INTEGER, INTEGER, INTEGER | COLLECTION | ||
CollectOrphans | INTEGER, STRING | COLLECTION | Objekte für das physische Löschen aufsammeln - ... weitere Hinweise und Unterschiede |
|
CollectOrphans2 | COLLECTION, STRING | COLLECTION | ||
CopyPersObject | OBJECT, INTEGER, INTEGER, VECTOR<STRING> | OBJECT | verhält sich wie der gleichnamige InstantView®-Befehl; zusätzlich können Datenfelder von der Übernahme in das kopierte Objekt ausgeschlossen werden (Beispiele) | |
CopyREPCollection | STRING, STRING, INTEGER | erzeugt eine Kopie der Collection, die mit REP 'Name(alt)' verbunden ist und bindet sie an REP 'Name(neu)' | ||
GetREP | INTEGER, INTEGER, INTEGER | COLLECTION | Bietet Zugriff auf eine REP unter Umgehung des aktuell gesetzten Layers und der aktuell gesetzten 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 | Interne Datenstrukturen ausgeben | |||
DestroyAllSegTables | ||||
EnableDeadlockPrevention 214458 |
INTEGER | Mechanismus zum Verhindern von Deadlocks deaktivieren | ||
FreeAddressSpace | Address-Space freigeben durch Transaktions-Wechsel | |||
FreeVirtualMemory | INTEGER | out of virtual memory Exception verhindern | ||
GetAddressSpaceSize | CX_VALUE | Liefert die tatsächliche Größe des Adressraumes | ||
GetCacheSize | INTEGER | Liefert die Größe des Datenbank-Caches zurück | ||
GetCacheSizeFactor | CX_PERCENT | Liefert den Cache-Size-Factor zurück | ||
GetClusteringMode | CX_BIT_PATTERN | Liefert den Clustering-Mode | ||
GetClusteringObject | OBJECT | |||
GetDatabases | COLLECTION | alle Datenbanken | ||
GetDBUtility | CX_DB_UTILITY | liefert das Database Utility Objekt | ||
GetGlobalFetchPolicy | INTEGER | Parameter für SetGlobalFetchPolicy | ||
GetLayers | COLLECTION | Layers und Domains, repräsentiert durch CXS_LAYER, CXS_DOMAIN | ||
GetLoggedClasses | VECTOR<INTEGER> | Liefert die aktuelle Klassen-Whitelist des Change-Loggers | ||
GetNotLoggedClasses | VECTOR<INTEGER> | Liefert die aktuelle Klassen-Blacklist des Change-Loggers | ||
GetMemoryReservedForApps | CX_VALUE | Liefert Größe des für ClassiX reservierten Speichers | ||
GetMetaClass | INTEGER | CX_META_CLASS | Metaklasse für Klasse 'classID' | |
GetMetaClasses | COLLECTION<CX_META_CLASS> | alle Metaklassen | ||
GetObjectsInSegment | STRING, INTEGER, INTEGER | COLLECTION | liefert alle Objekte in einem bestimmten Abschnitt eines Segments, vergleiche auch CXS_SEGMENT::GetObjects | |
GetObjectsReferringTo | OBJECT, STRING | COLLECTION | die Cross-Referenz der Objekte muss vorher mit dem Utility-Programm cxxosr.exe aufgebaut werden | |
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" | |
GetPageSize | CX_VALUE | Liefert die aktuell eingestellte Größe einer Page zurück. | ||
GetReadLockTimeout | INTEGER | Default ist 1 min | ||
GetRootClass | CX_META_CLASS | Metaklasse für CX_CLASS | ||
GetSegments | COLLECTION | alle Segmente | ||
GetServers | VECTOR<OBJECT> | Information über alle ObjectStore-Server | ||
GetSessions | INTEGER | |||
GetStartDirectory | STRING | |||
GetTerminalServerCacheSize | CX_VALUE | Liefert die Cache-Size im Fall einer Remote-Desktop-Verbindung | ||
GetUnassignedAddressSpace | INTEGER | |||
GetWriteLockTimeout | INTEGER | Default ist 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 | Wie Link, aber Eintrag in Collection an eine bestimmte Position | ||
LookUpMetaInfo | STRING, INTEGER | OBJECT | Sind Metadaten in der Datenbank gespeichert? flag = 4 - Enumerationstabellen flag = 8 - Locales Der Eingabeparameter gibt an, für welche Metadaten man sich interessiert; das Ausgabeflag zeigt durch belegte Bits in der oben angegebenen Codierung, welche der abgefragten Metadaten in der Datenbank gefunden wurden. |
|
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 | liefert die Anzahl der Layers | ||
MoveREPCollection | INTEGER, STRING | REP-Collection nach dem angegebenen Segment verschieben | ||
NewDatabase | CXS_DATABASE | Datenbank interaktiv erzeugen (Beispiel) | ||
NewMetaClass | CX_META_CLASS | Pseudoklasse interaktiv erzeugen (Beispiel) | ||
NewREPCollection | CXS_REP_COLLECTION | REP-Collection interaktiv erzeugen (Beispiel) | ||
NewSegment | CXS_SEGMENT | Segment interaktiv erzeugen (Beispiel) | ||
NumberOfReserveSegments | INTEGER | |||
OpenDatabase | STRING, INTEGER | INTEGER | Öffne die n-te logische Datenbank (siehe classix.ini) mit neuem Pfad zu einer anderen physischen Datenbank | |
ParseMetaInfoAdditive 230331 |
STRING | Parst den Inhalt des STRINGs als wäre er Teil der MetaInfo-Sektion der .ini-Datei. | ||
QueryAllLayers 227219 |
OBJECT | VECTOR<INTEGER> | Gibt alle Layer zurück, in denen das Objekt liegt. | |
QueryDatabase 227219 |
OBJECT | CXS_DATABASE | Liefert die Datenbank in welcher das Objekt liegt oder NULL. | |
QueryDomain | OBJECT | INTEGER | alle von CX_EXPANDABLE abgeleiteten Objekte kennen ihre Domain | |
QueryLayer | OBJECT | INTEGER | Liefert den ersten Layer in dem das Objekt gefunden wurde oder -1 | |
QuerySegment | OBJECT | CXS_SEGMENT | liefert das Segment, in dem das Objekt gespeichert ist | |
ReleaseAddressSpace | Der ab dem letzten Aufruf von SetAddressSpaceMarker verbrauchte Address-Space wird freigegeben. Die Funktion tut nichts (No-Operation) wenn - SetAddressSpaceMarker nie vorher aufgerufen wurde - bei Aufruf auf einem InstantView®-Level > 0 |
|||
ReleaseAddressSpace2 | INTEGER | |||
RenameREP | STRING | Root-Entry-Point umbenennen: legt REP 'Name(neu)' an und verbindet mit den Wert von REP 'Name(alt)'. Dies geschieht in allen physischen Datenbanken - passend zu AutoLayer | ||
RenameREP2 | STRING, STRING, STRING | wie RenameREP, aber nur in der als Parameter angegebenen physische Datenbank. Wenn der Pfad zur Datenbank über eine Umgebungsvariable angegeben wird (siehe CLASSIX.INI) ), kann als Parameter statt des Pfades auch der Name der Variablen übergeben werden. |
||
RepairREPCollection | INTEGER, STRING, INTEGER | Repariert die REP-Collection der Klasse classID. Die neue REP-Collection wird im Segment seg erzeugt. 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 | Fetch-Policy für ein Segment auf Standard zurücksetzen | ||
ResetFetchPolicy2 | STRING | Fetch-Policy für ein Segment auf Standard zurücksetzen | ||
ResetGlobalFetchPolicy | Globale Fetch-Policy auf Standard zurücksetzen | |||
ReturnMemory | OBJECT | |||
RestoreCollection | COLLECTION, STRING | COLLECTION | kopiert eine mit SaveCollection gerettete Collection in die im 1. Parameter übergebene Collection. Wird NULL übergeben, erhält man die persistente Collection (aus dem ScratchPad-Segment) | |
SaveCollection | COLLECTION, STRING | COLLECTION | erzeugt eine persistente Collection in der Datenbank (im ScratchPad-Segment) und kopiert die im Parameter übergebene Collection in diese. Dabei wird ein Name vergeben (2. Parameter) | |
SaveEnumTables | STRING | Enumerationstabellen aus einem File als Objekte der Klasse CX_ENUM_TABLE in der Datenbank speichern,
Leerstring als Filename heißt: alle dem System bekannten Enumerationstabellen werden gespeichert |
||
SessionSwitching | INTEGER | |||
SetAccessHook | Filename, Typnamen(Vector) | Performance-Daten pro Objektzugriff erfassen ab ObjectStore 6.0 nicht mehr unterstützt! |
||
SetAddressSpaceMarker | Der ab jetzt weiter verbrauchte Address-Space kann mit einem folgenden Aufruf der Funktion ReleaseAddressSpace wieder freigegeben werden. Die Funktion arbeitet nur beim Aufruf aus InstantView®-Level 0, andernfalls wie No-Operation. |
|||
SetClusteringObject | OBJECT | OBJECT | ||
SetDefaultClusterSizeLimit 213694 |
INTEGER | Setzt das Cluster-Größenlimit für die Default-Allokation. | ||
SetFetchPolicy | INTEGER, INTEGER | Fetch-Policy für ein Segment einstellen | ||
SetFetchPolicy2 | STRING, INTEGER | Fetch-Policy für ein Segment einstellen | ||
SetGlobalFetchPolicy | INTEGER | Globale Fetch-Policy einstellen | ||
SetLockTimeout | INTEGER, INTEGER | wie lange auf eine Page gewartet werden soll, Intervalle in ms | ||
SetLoggedClasses | VECTOR<INTEGER> | Setzt die Klassen-Whitelist des Change-Loggers | ||
SetNotLoggedClasses | VECTOR<INTEGER> | Setzt die Klassen-Blacklist des Change-Loggers | ||
SetSessions | INTEGER | |||
SetTXNPriority | INTEGER | bei Dead-Lock wird immer die TXN mit kleinerer Priorität abgebrochen, Default-Wert ist 0x8000 | ||
SlotXref | Nicht mehr verwenden! Durch Utility cxxosr.exe ersetzt. erzeugt eine Cross-Referenz aller in der Datenbank verwendeten dynamischen Datenfelder (Beispiel) |
|||
TestDatabaseServer | INTEGER | INTEGER | Testet die Erreichbarkeit des für eine logischen Datenbank zuständigen Servers | |
UpdateDatabase 172299 |
STRING | aktualisiert das Datenbanklayout wie cxgoso mit Flag /U | ||
Where | ein (in der Datenbank gespeichertes) Objekt | CXS_SEGMENT | Information über das Segment, in dem das Objekt gespeichert ist |
* MA = Member-Access-Funktion,
grau unterlegt = geerbte Funktion
Datenfeld | Typ | Referenz-Klasse | I* | Kurzbeschreibung |
---|---|---|---|---|
internalName | STRING | |||
superClass | POINTER | CX_META_CLASS | ||
realWorldClassID | SHORT | |||
docu | SHORT |
* I = Indizierbares Datenfeld,
grau unterlegt = geerbtes Datenfeld
Modul | Kurzbeschreibung |
---|---|