Ansicht
Dokumentation
DB_COMMIT - Commit Work über EXEC SQL - Roll-out findet nicht statt
CL_GUI_FRONTEND_SERVICES - Frontend Services Vendor Master (General Section)Diese Dokumentation steht unter dem Copyright der SAP AG.
Es wird ein Datenbank-Commit 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_COMMIT die aktuell gültige Native SQL Datenbankverbindung
mittels dieser Kommandos auf eine sekundäre Datenbankverbindung gesetzt wurde, dann wird der
Commit 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-Commit auf der Standardverbindung erzwungen werden, unabhängig davon, wie die aktuelle Native SQL Verbindung gerade gesetzt ist.
Der Datenbank-Commit bewirkt, dass
1),,die laufende Datenbanktransaktion beendet und alle durchgeführten Datenbankänderungen festgeschrieben werden
2),,alle offenen Datenbank-Cursor, die nicht mit dem Zusatz WITH HOLD geöffnet wurden, implizit geschlossen werden
3),,alle in der laufenden Transaktion angeforderten Datenbanksperren freigegeben werden.
Im Gegensatz Zur Anweisung COMMIT WORK in Open SQL schließt der Aufruf von DB_COMMIT die aktuelle
SAP LUW nicht ab, d.h. die an das Ende eine SAP LUW gekoppelten Ereignisse (siehe Dokumentation zu COMMIT WORK) werden nicht ausgelöst.
Nach erfolgreicher Durchführung des Datenbank-Commit 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_COMMIT gesetzt wird.
Parameter
IV_DEFAULTAusnahmen
Funktionsgruppe
SYDBPERFORM Short Reference Vendor Master (General Section)
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 2366 Date: 20240523 Time: 142021 sap01-206 ( 53 ms )