Ansicht
Dokumentation

DB_ROLLBACK - Rollback Work über EXEC SQL - Roll-out findet nicht statt

DB_ROLLBACK - Rollback Work über EXEC SQL - Roll-out findet nicht statt

BAL_S_LOG - Application Log: Log header data   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Es wird ein Datenbank-Rollback auf der aktuell gültigen Datenbankverbindung per Native SQL durchgeführt. Im Normalfall ist dies die Standardverbindung (auch Default-Verbindung genannt) zur zentralen Datenbank des AS ABAP Systems. Es ist jedoch zu beachten, dass die aktuell für Native SQL Anweisungen gültige Datenbankverbindung durch folgende EXEC SQL Anweisungen global gesetzt werden kann:

EXEC SQL.
CONNECT TO con
ENDEXEC.

EXEC SQL.
SET CONNECTION con
ENDEXEC.

Wenn also vor dem Aufruf der Funktion DB_ROLLBACK die aktuell gültige Native SQL Datenbankverbindung mittels dieser Kommandos auf eine sekundäre Datenbankverbindung gesetzt wurde, dann wird der Rollback auf dieser Datenbankverbindung ausgeführt und nicht auf der Standardverbindung des AS ABAP. Dies kann u.U. zu unerwünschten Effekten in der Transaktionslogik führen, die inkonsistente Daten nach sich ziehen.

Durch Setzen des optionalen Parameters IV_DEFAULT = abap_true (Defaultwert ist abap_false) kann ein Datenbank-Rollback auf der Standardverbindung erzwungen werden, unabhängig davon, wie die aktuelle Native SQL Verbindung gerade gesetzt ist.

Der Datenbank-Rollback bewirkt, dass

1) die laufende Datenbanktransaktion beendet und alle dort durchgeführten Datenbankänderungen verworfen werden

2) alle offenen Datenbank-Cursor implizit geschlossen werden

3) alle in der laufenden Transaktion angeforderten Datenbanksperren freigegeben werden.

Im Gegensatz zur Anweisung ROLLBACK WORK in Open SQL schließt der Aufruf von DB_ROLLBACK die aktuelle SAP LUW nicht ab, d.h. die an das Ende einer SAP LUW gekoppelten Ereignisse (siehe Dokumentation zu ROLLBACK WORK) werden nicht ausgelöst.

Nach erfolgreicher Durchführung des Datenbank-Rollback wird jedoch das Ereignis DB_TRANSACTION_FINISHED der Klasse CL_DBI_TRANSACTION_STATE ausgelöst, wobei der Parameter KIND auf den Wert CL_DBI_TRANSACTION_STATE=>GC_ROLLBACK gesetzt wird.

Beispiel

Hinweise

Weiterführende Informationen

#####################################################################################################################################################################################





Parameter

IV_DEFAULT

Ausnahmen

Funktionsgruppe

SYDB

CL_GUI_FRONTEND_SERVICES - Frontend Services   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 2657 Date: 20240523 Time: 142431     sap01-206 ( 57 ms )