Freigeben über


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:

  • Eine ungültige JET_errInvalidGrbit wurde angegeben.

  • JET_bitWaitLastLevel0Commit wurde in Kombination mit einer anderen JET_errInvalidGrbitangegeben.

  • JET_bitWaitAllLevel0Commit wurde in Kombination mit einer anderen JET_errInvalidGrbitangegeben.

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