Transaktionen

Konstruktpalette:
Menü: Konstrukte→Transaktin→Beginn / Ende / Rollback

Die Konstrukte zur Transaktionsabgrenzung sind nur in Arbeitsgangsteuerungen (technischen Steuerungen, Typ ASTR oder SSTR) verfügbar.

Eine Transaktion führt den Datenbestand von einem konsistenten Zustand in den nächsten über. Sie garantiert so die Datenkonsistenz sowohl im Fehlerfall als auch bei konkurrierendem Zugriff. Eine Transaktion wird entweder ganz oder überhaupt nicht ausgeführt.

In einer verteilten Verarbeitung, wobei Funktionen auf unterschiedlichen Rechnern ausgeführt werden, müssen die Transaktionsgrenzen dort festgelegt werden, wo die Verteilung über Client und Servers bekannt ist, also in der Steuerung. Nur so kann erreicht werden, dass nach einem Fehler die Information an alle betroffenen Systeme gegeben wird und ggf. an mehreren Stellen Aktionen rückgängig gemacht werden können (»Rollback«). Mit den Konstrukten TRANSAKTION BEGINN, TRANSAKTION ENDE und ROLLBACK können Sie bestimmen, welche Aktionen eine Transaktion umfassen soll.

TRANSAKTION BEGINN fügen Sie an der Stelle ein, wo eine Transaktion anfängt. Alle folgenden Aktionen sind dann Bestandteil der Transaktion, so lange, bis ein TRANSAKTION ENDE erreicht wird.

TRANSAKTION ENDE beendet die Transaktion: Alle Aktionen, die notwendig waren, um einen Vorgang abzuschließen, sind durchgeführt worden. Nach TRANSAKTION ENDE kann kein ROLLBACK mehr erfolgen.

ROLLBACK stellt den Zustand wieder her, der vor TRANSAKTION BEGINN gegeben war: alle dazwischen vorgenommenen Änderungen werden rückgängig gemacht.

Als zusätzliche Angabe zu den Transaktionskonstrukten ist nur Kommentar möglich.

Transaktionen sind physische Transaktionen, nicht logische Transaktionen! Sie müssen deshalb bei der Transaktionsabgrenzung die Regeln der physischen Transaktionierung beachten: z.B. darf während einer Interaktion keine Transaktion offen sein, usw.
Sie müssen selbst dafür sorgen, dass die Transaktionskonstrukte sinnvoll eingesetzt werden: ControlEdge überprüft nicht, ob eine offene Transaktion auch wieder beendet wird. ControlEdge überprüft auch nicht, ob bei einem ROLLBACK oder TRANSAKTION ENDE tatsächlich eine Transaktion offen ist. Solche Fehler werden erst bei der Kompilierung oder gar zur Laufzeit erkennbar.

cedge:edit:transaction · Zuletzt geändert: 08.11.2019 10:38

Copyright © 1992-2024 TeamWiSE Gesellschaft für Softwaretechnik mbH         Adressen |  Kontakt |  AGB |  Datenschutzerklärung |  Impressum