Show TOC Anfang des Inhaltsbereichs

Datenbank-LUW  Dokument im Navigationsbaum lokalisieren

Aus der Sicht der Datenbankprogrammierung ist eine Datenbank-LUW eine nicht teilbare Folge von Datenbankoperationen, die mit einem Datenbank-Commit abgeschlossen wird. Die Datenbank-LUW wird vom Datenbanksystem entweder vollständig oder überhaupt nicht ausgeführt. Nach dem erfolgreichen Abschluss einer Datenbank-LUW befindet sich die Datenbank wieder in einem konsistenten Zustand. Wird innerhalb einer Datenbank-LUW ein Fehler entdeckt, so lassen sich alle seit Beginn der Datenbank-LUW gemachten Datenbankänderungen wieder zurücknehmen. Die Datenbank befindet sich anschließend im gleichen Zustand wie vor dem Beginn der Datenbank-LUW.

Diese Grafik wird im zugehörigen Text erklärt

Datenbankänderungen innerhalb einer Datenbank-LUW werden erst nach einem Datenbank-Commit endgültig auf der Datenbank festgeschrieben. Vorher können sie durch einen Datenbank-Rollback wieder zurückgenommen werden. Im SAP-System werden Datenbank-Commits und Datenbank-Rollbacks entweder implizit oder durch explizite Anforderungen ausgelöst.

Implizite Datenbank-Commits

Ein Workprozess kann immer nur eine Datenbank-LUW ausführen. Daraus folgt, dass ein Workprozess immer dann eine Datenbank-LUW beenden muss, wenn er seine Aktivität für einen Benutzer am Bildschirm oder einen externen Aufruf beendet hat. Im einzelnen gibt es die folgenden drei Fälle, in denen Workprozesse einen solchen impliziten Datenbank-Commit auslösen:

·        Abschluss eines Dialogschritts

Die Kontrolle wechselt vom Workprozess zum SAP GUI.

·        Aufruf eines Funktionsbausteins in einem anderen Workprozess (RFC).

Die Kontrolle geht an den anderen Workprozess über.

·        Ende des aufgerufenen Funktionsbausteins (RFC) im anderen Workprozess

Die Kontrolle geht an den aufrufenden Workprozess zurück.

·        Unterbrechung des Workprozesses mit der Anweisung WAIT.

Die Kontrolle geht an einen anderen Workprozess über.

·        Fehlerdialoge (Informations-, Warnungs oder Fehlernachrichten) innerhalb von Dialogschritten

Die Kontrolle geht vom Workprozess an den SAP GUI über.

Explizite Datenbank-Commits

Um in Anwendungsprogrammen explizite Datenbank-Commits auszulösen, gibt es zwei Möglichkeiten:

·        Aufruf des Funktionsbausteins DB_COMMIT

Dieser Funktionsbaustein dient ausschließlich dem Zweck einen Datenbank-Commit abzusetzen.

·        Ausführung der ABAP-Anweisung COMMIT WORK

Diese Anweisung führt außer einem Datenbank-Commit weitere Aktivitäten aus (vergleichen Sie die Schlüsslewortdokumentation zu COMMIT WORK).

Implizite Datenbank-Rollbacks

Folgende Bedingungen führen zu einem impliziten Datenbank-Rollback:

·        Laufzeitfehler eines Anwendungsprogramms

Diese Situation tritt auf, wenn ein Anwendungsprogramm aufgrund einer unvorhergesehen Situation (z.B. Division durch Null) die Verarbeitung abbrechen muss.

·        Abbruch-Nachricht

Eine Abbruch-Nachricht wird mit der ABAP-Anweisung MESSAGE unter Verwendung der Nachrichtentypen A oder X, in manchen Situationen (Verbuchung) auch bei I, W und E erzeugt. Solch eine Nachricht führt zur Beendigung des aktuellen Anwendungsprogramms.

Explizite Datenbank-Rollbacks

Ein expliziter Datenbank-Rollback wird durch die Ausführung der ABAP-Anweisung ROLLBACK WORK erreicht. Diese Anweisung führt außer einem Datenbank-Rollback weitere Aktivitäten aus (vergleichen Sie die Schlüsselwortdokumentation zu ROLLBACK WORK).

Aus den hier aufgezählten Punkten ergibt sich die folgende Zusammenstellung von Zeitpunkten, bei denen Datenbank-LUWs beginnen bzw. enden.

Eine Datenbank-LUW beginnt

·        mit jedem Anfang eines Dialogschritts (wenn ein Workprozess belegt wird)

·        nach jedem Beenden der vorherigen Datenbank-LUW durch einen Datenbank-Commit

·        nach jedem Beenden der vorherigen Datenbank-LUW durch einen Datenbank-Rollback

Eine Datenbank-LUW endet

·        mit einem Datenbank-Commit, dabei werden die bisher durchgeführten Änderungen festgeschrieben

·        mit einem Datenbank-Rollback, dabei werden die bisherigen Änderungen rückgängig gemacht

Datenbank-LUWsund Datenbanksperren

Zu einer Datenbank-LUW gehören nicht nur die in ihr ausgeführten Änderungen, sondern auch Datenbanksperren, mit denen das Datenbank-System gewährleistet, dass konkurrierende Änderungen an Daten nicht zu Inkonsistezen führen. Die Lebensdauer von Datenbanksperren ist auf die Lebensdauer einer Datenbank-LUW beschränkt, d.h. am Ende einer Datenbank-LUW werden sie automatisch wieder freigegeben. Für die Programmierung von SAP-LUWs benötigen wir also einen Sperrmechanismus, der Sperren mit größerer Lebensdauer erlaubt (siehe Das SAP-Sperrkonzept).

 

Ende des Inhaltsbereichs