Lade...
 

Collections

Collections

Mit Collections werden Objekte zusammengefasst - sowohl in der Datenbank als auch im transienten Speicher. Mit den folgenden InstantView®-Befehlen können Collections erzeugt und modifiziert werden:

Es ein Fehler, Elemente einer Collection zu löschen ohne sie aus dieser zu entfernen. Transiente Objekte, die in transienten Collections stehen, sind automatisch vor der GarbageCollection geschützt. Dies heißt auch, dass die GarbageCollection in jeder Mark-Phase alle transienten Collection durchiteriert, um zu prüfen, welche Objekte noch referenziert werden. Dies kann bei transienten Collections mit sehr vielen Elementen zu Performanceproblemen führen und falls die Objekte ohnehin anderweitig geschützt sind (z.B durch einen Vektor) oder nur persistent sind, dann kann dieser Schritt per CX_GARBAGE_MANAGER::UnprotectContents für diese Collection deaktiviert werden.

Collection-Typen
Typ Beschreibung
SET (default) Ohne Reihenfolge, filtert doppelte Einträge automatisch heraus, etwas langsamer als LIST
LIST Mit Reihenfolge, lässt doppelte Einträge zu, ist etwas schneller als SET

BAG

Ohne Reihenfolge, lässt doppelte Einträge zu, sodass Objekte mehrfach entfernt werden können. (Entspricht einem multiset)
ARRAY Vom Verhalten her wie LIST, aber bei Modifikationen, die nicht am Ende stattfinden, langsamer und beim Lesen schneller als LIST

Achtung: Bei SET und BAG führt das Einfügen von geclusterten Objekten zu enormen Performanceproblemen. Siehe hierzu: Clustering und Collections