Anhand eines Anwendungsbeispiels werden beide Varianten der "konsistente Versionierung" erläutert. Im Statusschema ist der Status "Freigegeben" (IZQFR) vorhanden. Es wird ein Objekt mit Kindern und Kindeskindern angelegt. Alle Knoten besitzen die Versionierungsart "konsistente Versionierung". Nach dem Anlegen ist der Status aller Knoten "In Erstellung" (IZQER). Zu sehen auf dem folgenden Bild.
Der Knoten "B" wird freigegeben. Danach wird versucht eine Version des Knotens B anzulegen. → Dies funktioniert nicht, weil bei der konsistenten Versionierung nur eine Version eines Knotens unter dem gleichen Objekt existieren darf.
Es werden alle Knoten bis auf der Kopf und Knoten A freigegeben. Es wird erneut versucht Knoten B zu versionieren. → Dies funktioniert nicht, weil bei der konsistenten Versionierung nur eine Version eines Knotens unter dem gleichen Objekt existieren darf.
Es wird der Knoten A freigegeben (alle Knoten bis auf der Kopf wurden freigegeben). Es wird versucht Knoten B zu versionieren. → Dies funktioniert nicht, weil bei der konsistenten Versionierung nur eine Version eines Knotens unter dem gleichen Objekt existieren darf.
Objekt versionieren
Der Kopf wird freigegeben. Es wird versucht Knoten B zu versionieren. → Dies ist möglich und es wird mit der Variante 1 eine neue Version des Kopfes angelegt.
Die wesentlichen Gemeinsamkeiten und Unterschiede zwischen den zwei Versionen des Kopfes sind dem folgenden Text und den Abbildungen zu entnehmen. Die Nachfolgeversion des Kopfes besitzt die gleiche VNR wie die Vorgängerversion. Die Versionsnummer wurde um eins erhöht. Die OGUID ist die GUID des neuen Kopfes und die PREVOGUID ist die OGUID des alten Kopfes. Der Gültigkeitsbereich der Nachfolgeversion in Form des VALIDFR wurde auf die aktuelle Zeit angepasst. Der Gültigkeitsbereich der Vorgängerversion in Form des VALIDTO wurde auf die aktuelle Zeit minus 1 Sekunde gesetzt.
Vorgängerversion:
Nachfolgeversion:
Alle Kinder des alten Objektes werden an das neue Objekt umgezogen. Es gibt daher weder eine Vorgänger- noch eine Nachfolgeversion des Kindes. Es handelt sich in beiden Objekten um den gleichen Knoten. Dementsprechend gibt es keine Veränderung des Gültigkeitsbereichs, der VNR oder der Versionsnummer. Die OGUID ist die GUID des neuen Elternknotens und die PREVOGUID ist die OGUID des alten Elternknotens. Der Knoten besitzt am alten und am neuen Objekt den RELATTYP = O. In der Folgenden Abbildung ist dies exemplarisch für einen Knoten des Objektes dargestellt.
Im nächsten Schritt wird versucht unter dem Knoten A Version 1 den Knoten B Version 1 auf modifiziert zu ändern. → Das ist nicht möglich weil, weil der Knoten B Version 1 an den ROOT A Version 2 umgezogen wurde..
Es wird versucht den Kopf A Version 1 zu versionieren. → Das ist nicht möglich, weil es bereits eine Nachfolgeversion des Kopfes A Version 1, Kopf A Version 2, gibt.
Knoten C versionieren
In einem nächsten Schritt wird Kind C Version 1 unter dem ROOT A Version 2 versioniert. → Dies ist möglich. Dieses Beispiel wurde bereits unter Variante 2 und Knoten umziehen beschrieben. Das Ergebnis ist, dass die Knoten A Version 1, Knoten B Version 1 und Knoten C Version 1, alle unter ROOT A Version 2, versioniert werden. Alle anderen Knoten D Version, E Version 1, F Version 1, G Version 1 und H Version 1 werden umgezogen.
Die nachfolgende Abbildung zeigt das Ergebnis:
Nachfolgeversion von Knoten A Vorgängerversion von A
Nachfolgeversion von Knoten B Vorgängerversion von B
Nachfolgeversion von Knoten C Vorgängerversion von C
Es wird der Knoten C Version 2 unter dem Kopf A Version 2 freigegeben. Der Knoten C Version 1 unter dem Kopf Version 1 erhält den Status "Alte Version" (IZQAL).
Nach der Freigabe wird der Knoten C Version 2 unter Kopf A Version 2 versucht zu versionieren. → Dies ist nicht möglich, weil ein Knoten nicht zweimal im gleichen Objekt vorkommen darf.
Knoten G versionieren
Es wird der Knoten G Version 1 unter dem ROOT A Version 2 versioniert. → Dies ist möglich. Dieses Beispiel wurde bereits unter Variante 2 und Knoten umziehen beschrieben. Das Ergebnis ist, dass die Knoten F Version 1 und Knoten G Version 1 versioniert wurden. Der Knoten H Version 1 wurde umgezogen.
Nachfolgeversion von Knoten F Vorgängerversion von F
Nachfolgeversion von Knoten G Vorgängerversion von G
Der ROOT A Version 2 wird freigegeben und es wird versucht Knoten C Version 2 unter dem Kopf Version 2 zu versionieren. → Dies ist nicht möglich. Sobald der Kopf freigegeben ist, wird versucht die Variante 1 durchzuführen. Dazu müssen alle Kinder ebenfalls freigegeben werden, ansonsten ist die Versionierung nicht durchführbar. Sobald der Kopf A Version 2 freigegeben ist, bekommt der Kopf A Version 1 den Status "Alte Version" (IZQAL).
In einem nächsten Schritt wird versucht den Kopf A Version 2 direkt zu versionieren. → Dies ist nicht möglich. Sobald der Kopf freigegeben ist, müssen alle Kinder ebenfalls freigegeben werden, ansonsten ist die Versionierung nicht durchführbar.
Der Status des Kopfes A Version 2 wird zu nächst auf modifiziert geändert. Danach wird eine Sammelfreigabe durchgeführt.
Das Objekt ist nun komplett freigegeben. Alle Vorgängerversionen von Knoten, welche versioniert wurden, haben unter dem Kopf A Version 1 den Status "Alte Version" (IZQAL) bekommen. Die anderen Knoten wurden umgezogen und sind unter beiden Objekten mit dem Status "Freigegeben" (IZQFR) verfügbar. Alle Knoten haben den Relationstypen = Original (O).
Knoten H versionieren
Als Nächstes wird der Knoten H Version 1 unter dem Kopf A Version 2 versioniert. → Dies ist möglich und es wird mit der Variante 1 eine neue Version des Objektes angelegt. Der Kopf wird versioniert und die restlichen Knoten an die neue Version umgezogen.
Nachfolgeversion Kopf A Vorgängerversion Kopf A
Der Knoten H Version 1 unter dem Kopf A Version 3 wird versioniert. → Dies ist möglich. Es wird die Variante 2 ausgeführt. Es wird keine neue Version des Kopfes angelegt, deswegen liegt dieser unverändert vor. Die Eltern des Knotens H, Knoten A Version 2, Knoten B Version 2 und Knoten F Version 2, sowie der Knoten selbst werden versioniert.
Nachfolgeversion von Knoten A Vorgängerversion von A
Nachfolgeversion von Knoten B Vorgängerversion von B
Nachfolgeversion von Knoten F Vorgängerversion von F
Nachfolgeversion von Knoten H Vorgängerversion von H
Auf den Kopf A Version 3 wird eine Sammelfreigabe ausgeführt. Die Knoten D und E wurden nur umgezogen, deshalb sind sie unter Kopf A Version 1, Kopf A Version 2 und Kopf A Version 3 mit dem Status "Freigegeben" (IZQFR) vorhanden. Alle Vorgängerversionen der Knoten welche im Nachfolgeobjekt versioniert und freigegeben wurden, haben den Status "Alte Version" (IZQAL). Die restlichen Knoten besitzen den Status "Freigegeben" (IZQFR).





























































