Lade...
 

AbortTXN

AbortTXN

AbortTXN, AbortTXN(UNSAFE)

Stack
Stack   Beschreibung
Stack(In)   -
Stack(Out)   -

bricht die laufende Transaktion ab. Alle auf die Datenbank bezogenen Veränderungen (innerhalb der letzten Transaktion) werden nicht wirksam. 
Dazu passend werden InstantView®-Variable und andere Zustandswerte des ClassiX®-Systems automatisch auf den Wert zu Beginn der Transaktion zurückgestellt; unabhängig davon, ob die Transaktion automatisch von InstantView® oder explizit mit BeginTXN  gestartet wurde. Falls keine Transaktion gestartet wurde (kein BeginTXN und kein persistenter Zugriff), dann wird der Zustand von ClassiX® nicht zurückgesetzt.

 

AbortTXN(UNSAFE) 208630
AbortTXN akzeptiert optional das Flag UNSAFE. Hiermit kann explizit verhindert werden, dass der Zustand von ClassiX auf den Zustand vor Beginn der Transaktion zurückgerollt wird. Das heißt, dass Modulvariablen, statische Variablen und globale Variablen nach einem AbortTXN auf gelöschten Speicher zeigen können (falls ein CreatePersObject per AbortTXN zurückgenommen wurde). Genauso können nach dem AbortTXN noch Fenster offen sein, die gelöschte Objekte halten. Bei Verwendung von AbortTXN(UNSAFE) liegt es in der Verantwortung des Entwicklers sicher zu stellen, dass keine ungültigen Variablen refernziert werden und die entsprechenden Fenster geschlossen werden.

Dieser Mechanismus kann aktuell verwendet werden, um Variablen, welche die übergeordnete Programmlogik steuern bei einem AbortTXN nicht zurückzusetzen. Dieser Mechanismus ist nur vorübergehend und wird in Zukunft durch ein entsprechendes Sprachkonstrukt ersetzt, mit dem einzelne Variablen gezielt vor dem Zurücksetzen geschützt werden können.
 

 

Abschließend wird durch den Transaktionsabbruch die GarbageCollection gestartet.

Codebeispiel:

Var(pi) 3.1415926 -> pi BeginTXN 3 -> pi //change pi to 3 AbortTXN //pi gets reset to 3.1415926 pi 3 = ifnot { "OK" Attention(,INFO) }
Lokale Variablen werden aktuell nicht durch AbortTXN oder cancel zurückgesetzt

Außer durch die Anweisung AbortTXN wird eine Transaction vom ClassiX®-System in folgenden Fällen abgebrochen:

  • InstantView®-Anweisung cancel wird ausgeführt
  • ein vom ClassiX® oder ObjectStore® erkannter Fehler wird gemeldet
Verwandte Themen