Lade...
 

CX_DB_UTILITY::LoadCollectionDump

CX_DB_UTILITY::LoadCollectionDump

220617
Beschreibung:

Diese Methode lädt eine Liste von persistenten Objekten aus einer Datei, wie sie von DumpCollection geschrieben und von MoveFrameBatch gelesen wird. Die Datei hat folgendes Format: (223312)

Anzahl Einträge: 4 Bytes unsigned int LE Recordgröße: 4 Bytes unsigned int LE = 0x30 Padding: 40 Bytes
Objekt-ID: 48 Bytes ASCII-String
Objekt-ID: 48 Bytes ASCII-String
...

Bis Dll-Version 223312 war die Recordgröße auf 32 Bytes festgelegt. Dies war für einige Objektadressen jedoch zu kurz.

Mit diesem Dateiformat können große Collections von persistenten Objekten sehr effizient wieder gelesen werden. Über die INTEGER-Parameter kann die Datei auch in Chunks eingelesen und so eine Operation über eine große Menge an Objekten einfach auf mehrere Transaktionen verteilt werden. Diese Methode wird hauptsächlich für Reorg-Läufe verwendet.

Wird für die Anzahl der zu lesenden Objekte -1 oder ein Wert angegeben, der größer ist, als die Anzahl der Objekte in der Datei, dann werden alle Objekte ab dem angegebenen Startindex gelesen.

Ist der StartIndex größer, als die Anzahl der Objekte in der Datei, dann wird eine leere Liste zurückgegeben.

Die Methode liefert die geladene Collection als Liste. Die Objekte befinden sich in der gleichen Reihenfolge, wie sie in die Datei geschrieben wurden und Duplikate werden nicht entfernt.

Code-Beispiel:
Var(util) GetManager(OBJECT) Call(GetDBUtility) -> util objects "CX_SYSTEM_OUT\\objects.coll" util Call(DumpCollection) ... "CX_SYSTEM_OUT\\objects.coll" 0 (-1) util Call(LoadCollectionDump) -> loadedObjects

 

Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_DB_UTILITY Tool-Objekt 
  Top-1 INTEGER Anzahl der zu lesenden Objekte (-1 = Alle)
  Top-2 INTEGER Index ab welchem Objekt gelesen werden soll (0 = Anfang)
  Top-3 STRING Dateipfad der zu ladenden Datei
Stack(Out) Top - -

Funktionsaufruf: Call(LoadCollectionDump)