CX_DB_UTILITY::ExportCollection
Beschreibung:
Diese Methode schreibt die Adressen aller Objekte einer Collection in eine Datei. Dabei
versucht sie korrupte Pointer und Objekte zu ignorieren und behandelt Address-Space-Overflow automatisch. Kann die Datei nicht geschrieben werden oder
wird keine Collection übergeben wird eine Exception geworfen.Das Format der Datei ist wie folgt: Für jedes exportiertes Objekt wird eine
Zeile geschrieben. Diese Zeile hat die Adresse des Objektes in der Kurzform <layer|segment|cluster|offset|length>, wobei das offset in Hexadezimalwert, alle anderen Zahlen als Dezimalwerte angegeben werden. Für jedes korrupte Objekt wird abhängig von der Schwere der Korruption "(invalid object type)" oder "(skipped)" an die Adresse angehängt. Kann die Adresse gar nicht bestimmt werden wird nur "(skipped)" ausgegeben. Am Ende der Datei wird eine zweizeilige Zusammenfassung geschrieben, die die Anzahl der exfolgreich geschriebenen und der korrupten Objekte angibt. Ein Beispiel ist wie
folgt:<0|3076|1986|206a74|10000>
<0|3466|2994|96f64|10000>
<0|3464|0|288d4f8|10000>
<0|3466|2444|c30|10000>
<0|3466|3132|c30|10000>
Successfully exported objects: 657826
Corrupted objects ignored: 0
Achtung!
Diese Funktion erwartet eine offene Transaktion. Ist keine
Transaktion zum lesen geöffnet schreibt diese Funktion für jede Zeile "(skipped)".Code-Beispiel:
Der folgende Code liefert die Standard
GarbageCollection angemeldet unter "geps" in der Datenbank "classix.cxd"
und schreibt die Adressen aller Objekte in eine Datei "address.txt":
Var(dbutil)
GetManager(OBJECT) Call(GetDBUtility) -> dbutil
BeginTXN
"classix.cxd" "geps" dbutil Call(GetREPCollByName)
Stack | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(In) | Top | CX_DB_UTILITY | CX_DB_UTILITY-Objekt |
Top-1 | STRING | Name der zu schreibenden Datei | |
Top-2 | COLLECTION | Collection mit zu exportierenden Objekten | |
Stack(Out) | Top |