JetOSSnapshotFreeze-Funktion

Gilt für: Windows | Windows Server

JetOSSnapshotFreeze-Funktion

Die JetOSSnapshotFreeze-Funktion startet eine Momentaufnahme. Während der Momentaufnahme wird ausgeführt, kann keine Schreibaktivität des Moduls auf den Datenträger erfolgen.

Windows XP:JetOSSnapshotFreeze wird in Windows XP eingeführt.

    JET_ERR JET_API JetOSSnapshotFreeze(
      __in          const JET_OSSNAPID snapId,
      __out         unsigned long* pcInstanceInfo,
      __out         JET_INSTANCE_INFO** paInstanceInfo,
      __in          const JET_GRBIT grbit
    );

Parameter

snapId

Der Bezeichner der Momentaufnahme Sitzung.

pcInstanceInfo

Die Anzahl der Instanzen, die derzeit in der Engine ausgeführt werden, die Teil der Momentaufnahme-Sitzung sind.

paInstanceInfo

Ein Array von Strukturen, eine für jede ausgeführte instance, die Teil der Momentaufnahme-Sitzung ist und die instance und die Datenbanken beschreibt, die teil davon sind.

grbit

Die Optionen für diesen Aufruf. Dieser Parameter ist für die zukünftige Verwendung reserviert, und der einzige gültige Wert, der unterstützt wird, ist 0.

Rückgabewert

Diese Funktion gibt den JET_ERR-Datentyp mit einem der folgenden Rückgabecodes zurück. Weitere Informationen zu möglichen ESE-Fehlern finden Sie unter Erweiterbare Speichermodulfehler und Fehlerbehandlungsparameter.

Rückgabecode

Beschreibung

JET_errSuccess

Der Vorgang wurde erfolgreich abgeschlossen.

JET_errInvalidParameter

Die für die Ausgabeparameter bereitgestellten Zeiger sind NULL, die Momentaufnahme Sitzung ist ungültig, oder der grbit-Parameter ist ungültig.

JET_errOSSnapshotInvalidSequence

Die Momentaufnahme Sitzung befindet sich nicht im geeigneten Zustand, um ein Einfrieren zu starten (z. B. war ein vorheriges Einfrieren dieser Sitzung zuvor fehlgeschlagen).

JET_errOSSnapshotNotAllowed

Die Engine befindet sich nicht in einem Zustand, in dem ein Momentaufnahme ausgeführt werden kann. Mindestens eine Streamingsicherung wird bereits ausgeführt, oder eine oder mehrere Instanzen durchlaufen Wiederherstellungsschritte oder beenden sie.

JET_errOSSnapshotInvalidSnapId

Der Bezeichner für die Momentaufnahme Sitzung ist ungültig.

JET_errOutOfMemory

Die Funktion ist aufgrund einer Nicht-Speicherbedingung fehlgeschlagen.

JET_errOutOfThreads

Die Funktion ist fehlgeschlagen, weil ein neuer Thread, der das Einfrieren ausführt, nicht gestartet werden konnte.

Wenn diese Funktion erfolgreich ist, werden keine Schreib-IOs für die Datenbankdateien oder für die Protokolldateien ausgegeben, die Teil von Instanzen sind, die eingefroren sind. Außerdem werden die instance Informationen ordnungsgemäß ausgefüllt und müssen später durch Aufrufen von JetFreeBuffer mit dem Zeiger auf das zurückgegebene instance Infoarray freigegeben werden.

Wenn diese Funktion ausfällt, wird die Engine normal weiter ausgeführt, wobei die IOs wie gewohnt auftreten. Es ist nicht erforderlich , JetOSSnapshotThaw aufzurufen, wenn das Einfrieren fehlschlägt. Außerdem werden die instance Informationen nicht ausgefüllt, sodass diese Ressource nicht freigegeben werden muss.

Bemerkungen

Während des Sperrzeitraums werden keine Schreib-IOs für die angefügten Datenbanken oder die Transaktionsprotokolle ausgegeben, obwohl möglicherweise Schreib-IOs für die temporären Datenbanken oder Streamingdateien ausgegeben werden.

Der Zustand, in dem sich die Datenbanken und die Protokolldateien während des Einfrierens befinden (der Zustand, in dem sich die Dateien in einem Volumemomentaufnahmeimage befinden würden), ist so, dass eine normale Wiederherstellung möglich ist, wenn diese Dateien später wiederhergestellt werden.

Da es während des Einfrierungszeitraums keine Schreibvorgänge gibt, können normale API-Aufrufe in der Engine für dieses Intervall blockiert werden. Die Clientanwendung muss in der Lage sein, API-Aufrufe zu verarbeiten, die bei einem Einfrieren länger dauern können als normal.

Aufgrund der oben beschriebenen möglichen Auswirkungen gibt es ein internes Timeout, nach dem die Momentaufnahme Sitzung die Einfrierungsphase beendet, auch wenn die APIs, die das Tauwetter oder den Abbruch ausführen, nicht aufgerufen wurden. Der Wert des Timeouts kann mithilfe des JET_paramOSSnapshotTimeout Systemparameters geändert werden. Beachten Sie, dass das typische Gefrierintervall im Bereich von 10 Sekunden liegt, wobei das Standardtimeout etwa 60 Sekunden beträgt.

Anforderungen

Anforderung Wert

Client

Erfordert Windows Vista oder Windows XP.

Server

Erfordert Windows Server 2008 oder Windows Server 2003.

Kopfzeile

Deklariert in Esent.h.

Bibliothek

Verwenden Sie ESENT.lib.

DLL

Erfordert ESENT.dll.

Unicode

Implementiert als JetOSSnapshotFreezeW (Unicode) und JetOSSnapshotFreezeA (ANSI).

Weitere Informationen

JET_ERR
JET_INSTANCE_INFO
JET_OSSNAPID
JetOSSnapshotAbort
JetOSSnapshotPrepare
JetOSSnapshotPrepareInstance
JetOSSnapshotThaw