CX_DB_UTILITY::LoadCollectionDump
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 | 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)