2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver
2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver
2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Sperrkonzepte <strong>von</strong> <strong>Datenbank</strong>system <strong>und</strong> SAP-System 9.1<br />
Commits bezeichnet man als <strong>Datenbank</strong>transaktion. Alternativ können<br />
alle ändernden SQL-Anweisungen mit der SQL-Anweisung<br />
ROLLBACK (<strong>Datenbank</strong>-Rollback) zurückgenommen werden. In diesem<br />
Fall werden die gehaltenen <strong>Datenbank</strong>sperren ebenfalls gelöst.<br />
Bestellen eines Computers (Fortsetzung)<br />
Das oben erläuterte Beispiel der Verfügbarkeitsprüfung beim Bestellen<br />
eines Computers mithilfe <strong>von</strong> <strong>Datenbank</strong>sperren realisieren Sie in der Programmierung<br />
mit der SQL-Anweisung SELECT FOR UPDATE: Mit dieser Anweisung<br />
wird gleichzeitig der Bestand einer Komponente gelesen <strong>und</strong> eine<br />
Sperre auf den entsprechenden Bestand gesetzt. Haben Sie diese Prüfung<br />
für alle Komponenten erfolgreich durchgeführt, ändern Sie anschließend<br />
den Bestand (mit einem UPDATE auf die entsprechenden Zeilen) <strong>und</strong> geben<br />
mit einem COMMIT alle Sperren frei. Während eine Sperre besteht, können<br />
andere Benutzer die Daten zwar lesen (ein einfaches SELECT ist möglich),<br />
nicht aber selbst die Zeile sperren. Es kann also weder ein UPDATE noch ein<br />
SELECT FOR UPDATE durchgeführt werden. Eine solche Sperre bezeichnet<br />
man als exklusiv.<br />
Am Ende eines Transaktionsschrittes löst der SAP-Workprozess automatisch<br />
einen <strong>Datenbank</strong>-Commit (oder einen <strong>Datenbank</strong>-Rollback)<br />
aus. Damit werden alle <strong>Datenbank</strong>sperren gelöst. Daraus ergibt sich,<br />
dass <strong>Datenbank</strong>sperren nicht über mehrere Transaktionsschritte<br />
(d. h. im SAP-System über mehrere Eingabebildschirme) hinweg<br />
gehalten werden können.<br />
9.1.2 SAP-Enqueues<br />
Um Sperren über mehrere Schritte einer SAP-Transaktion hinweg zu<br />
halten, verwenden Sie die SAP-eigene Enqueue-Verwaltung. Die SAP-<br />
Enqueues werden vom Enqueue-Workprozess in der Enqueue-<br />
Tabelle verwaltet, die sich im Hauptspeicher befindet. Damit SAP-<br />
Enqueues auch beim Stoppen der SAP-Instanz erhalten bleiben, werden<br />
diese zusätzlich in einer lokalen Datei auf dem Enqueue-Server<br />
gesichert.<br />
Durch einen SAP-Enqueue wird ein logisches Objekt gesperrt. So<br />
können z. B. Zeilen aus mehreren <strong>Datenbank</strong>tabellen gesperrt werden,<br />
die zusammen einen Beleg bilden. Ein SAP-Enqueue kann auch<br />
eine oder mehrere Tabellen sperren. SAP-Enqueue-Objekte werden<br />
im <strong>ABAP</strong> Dictionary (Abschnitt Sperrobjekte) angelegt <strong>und</strong> geändert.<br />
Sie hängen eng mit den Begriffen SAP-Transaktion <strong>und</strong> SAP Logical<br />
SAP-Enqueue-<br />
Objekte<br />
405