JetCommitTransaction-Funktion
Letzte Änderung: Freitag, 27. Februar 2015
Gilt für: Windows | Windows Server
JetCommitTransaction-Funktion
Die Funktion JetCommitTransaction führt einen Commit für die Änderungen an den Zustand der Datenbank während der aktuellen Sicherungspunkt und migriert diese auf die vorherige Sicherungspunkt. Wenn der äußerste Punkt speichern ist ein Commit ausgeführt und dann die vorgenommenen Änderungen, die Sie bis zum Speichern auf den Zustand der Datenbank übernommen und die Sitzung wird die Transaktion beendet.
JET_ERR JET_API JetCommitTransaction(
__in JET_SESID sesid,
__in JET_GRBIT grbit
);
Parameter
sesid
Die Sitzung für diesen Aufruf verwenden.
JET_errInvalidGrbit
Eine Gruppe von Bits 0 (null) oder mehrere der folgenden Optionen angeben.
Wert |
Bedeutung |
---|---|
JET_bitCommitLazyFlush |
Ist normalerweise die Transaktion ein Commit ausgeführt, aber diese API wartet nicht auf die Transaktion in der Transaktionsprotokolldatei vor der Rückgabe an den Aufrufer geleert werden. Dies reduziert drastisch die Dauer der Commit-Vorgang auf Kosten der Haltbarkeit. Jede Transaktion, die nicht in das Protokoll geleert wird, bevor ein Absturz während der Wiederherstellung nach einem Absturz beim nächsten Aufruf JetInitautomatisch abgebrochen werden soll. Wenn JET_bitWaitLastLevel0Commit oder JET_bitWaitAllLevel0Commit angegeben werden, wird diese Option ignoriert. Wenn dieser Aufruf von JetCommitTransaction der erste Aufruf von JetBeginTransaction für diese Sitzung nicht übereinstimmt, wird diese Option ignoriert. Dies ist, da die letzte Aktion auf das äußerste Sicherungspunkt entscheidend ist, ob die gesamte Transaktion tatsächlich begangen wird auf der Festplatte. |
JET_bitWaitAllLevel0Commit |
Alle Transaktionen zuvor durch eine Sitzung, die noch nicht in die Transaktionsprotokolldatei geschrieben wurden, werden sofort geleert. Diese API warten, bis die Buchungen vor der Rückgabe an den Aufrufer übertragen wurden. Diese Option kann verwendet werden, auch wenn die Sitzung nicht in einer Transaktion befindet. Diese Option kann nicht zusammen mit anderen Optionen verwendet werden. Diese Option ist nur im Windows Server 2003 verfügbar. |
JET_bitWaitLastLevel0Commit |
Wenn die Sitzung zuvor alle Transaktionen begangen hat, und noch nicht in die Transaktionsprotokolldatei geschrieben, sollten sie sofort entfernt werden. Diese API warten, bis die Buchungen vor der Rückgabe an den Aufrufer übertragen wurden. Dies ist nützlich, wenn die Anwendung bereits mehrere Buchungen mit JET_bitCommitLazyFlush verpflichtet hat und möchte nun alle auf dem Datenträger zu speichern. Diese Option kann verwendet werden, auch wenn die Sitzung nicht in einer Transaktion befindet. Diese Option kann nicht zusammen mit anderen Optionen verwendet werden. |
Return Value
Diese Funktion gibt den Datentyp der JET_ERR mit einem der folgenden Rückgabecodes. Weitere Informationen zu den möglichen ESE-Fehlern finden Sie unter Extensible Storage Engine-Fehler und Fehler behandeln Parameter.
Rückgabecode |
Beschreibung |
---|---|
JET_errSuccess |
Der Vorgang wurde erfolgreich abgeschlossen. |
JET_errClientRequestToStopJetService |
Es ist nicht möglich, um den Vorgang abzuschließen, da alle Aktivitäten in der Instanz dieser Sitzung aufgrund eines Aufrufs von JetStopServiceeingestellt hat. |
JET_errInstanceUnavailable |
Es ist nicht möglich, um den Vorgang abzuschließen, da die Sitzung zugeordnete Instanz ein schwerwiegender Fehler, der erfordert aufgetreten ist, dass der Zugriff auf alle Daten gesperrt werden, um die Integrität der Daten zu schützen. Dieser Fehler wird nur von Windows XP und späteren Versionen zurückgegeben werden. |
JET_errInvalidgrbit |
Eine der angeforderten Optionen war ungültig oder nicht implementiert. Dieser Fehler wird durch JetCommitTransaction zurückgegeben werden bei:
|
JET_errNotInitialized |
Es ist nicht möglich, um den Vorgang abzuschließen, da die Instanz dieser Sitzung noch nicht initialisiert wurde. |
JET_errNotInTransaction |
Der Vorgang ist fehlgeschlagen, da die Sitzung nicht in einer Transaktion befindet. |
JET_errRestoreInProgress |
Es ist nicht möglich, um den Vorgang abzuschließen, da ein Wiederherstellungsvorgang ausgeführt auf die Instanz der Sitzung zugeordnet wird. |
JET_errSessionSharingViolation |
Die gleiche Sitzung kann für mehrere Threads gleichzeitig verwendet werden. Dieser Fehler wird nur von Windows XP und späteren Versionen zurückgegeben werden. |
JET_errTermInProgress |
Es ist nicht möglich, um den Vorgang abzuschließen, da die Sitzung zugeordnete Instanz heruntergefahren wird. |
Bei Erfolg werden alle Änderungen an der Datenbank vorgenommen werden, während die aktuelle Sicherungspunkt für die Sitzung und Sicherungspunkt, beendet. Wenn der letzten Sicherungspunkt für die Sitzung beendet wurde die Transaktion in der Transaktionsprotokolldatei optional entleert, und beenden die Sitzung Buchung.
Bei einem Fehler bleiben den Transaktionsstatus der Sitzung unverändert. Keine Änderung an den Zustand der Datenbank erfolgt. Die Anwendung sollte die JetRollback , um die Transaktion abbricht, aufrufen.
Anmerkungen
Ein Aufruf an JetCommitTransaction oder JetRollback , jeder Aufruf an JetBeginTransaction für eine bestimmte Sitzung muss vorhanden sein.
Voraussetzungen
-Client, |
Erfordert Windows Vista, Windows XP oder Windows 2000 Professional. |
Server |
Erfordert WindowsServer 2008, WindowsServer 2003 oder Windows 2000 Server. |
Kopfzeile |
In Esent.h deklariert. |
Library |
Verwenden Sie ESENT.lib. |
DLL |
"ESENT.dll" erfordert. |
Siehe auch
JET_ERR
JET_GRBIT
JET_SESID
JetBeginTransaction
JetCommitTransaction
JetRollback
JetStopService