Freigeben über


JetInit-Funktion

Letzte Änderung: Freitag, 27. Februar 2015

Gilt für: Windows | Windows Server

JetInit-Funktion

Die Funktion JetInit versetzt die Datenbank-Engine in einen Zustand, in dem Verwendung von Datenbankdateien Anwendung unterstützt werden können. Das Modul muss bereits für die Initialisierung von JetSetSystemParameterordnungsgemäß konfiguriert sein. Wiederherstellung der Datenbank wird automatisch als Teil der Initialisierungsprozess ausgeführt.

JET_ERR JET_API JetInit(
  __in_out_opt  JET_INSTANCE* pinstance
);

Parameter

pinstance

Die Instanz, die für diesen Aufruf verwenden.

Für Windows 2000 wird dieser Parameter wird ignoriert und sollte immer NULL sein.

Für Windows XP und spätere Versionen hängt die Verwendung dieses Parameters den Modus des Moduls. Wenn das Modul im arbeitet Legacymodus (Windows 2000-Kompatibilitätsmodus), in dem nur eine einzige Instanz unterstützt wird dann dieser Parameter kann entweder, NULL sein oder diese Liste festgelegt werden kann, einen gültigen Ausgabepuffer, mit der die globale Instanzzugriffsnummer als eine Auswirkung der Initialisierung erstellt zurückgegeben wird. Diese Ausgabepuffer muss NULL oder JET_instanceNil festgelegt werden. Diese Instanzzugriffsnummer kann dann an eine andere Funktion übergeben werden, die einer Instanz verwendet wird. Wenn das Modul mit mehreren Instanzen arbeitet muss dieser Parameter auf einen gültigen input Puffer festgelegt werden, die enthält die Instanzzugriffsnummer zurückgegeben, die von der Instanz der JetCreateInstance -Funktion, die initialisiert wird.

Anmerkungen

Bevor sie durch einen anderen Wert als JetSetSystemParameterverwendet werden kann, muss eine Instanz mit einem Aufruf JetInit initialisiert werden.

Eine Instanz wird durch einen Aufruf der Funktion JetTerm ist gelöscht, auch wenn diese Instanz mit JetInitniemals initialisiert wurde. Eine Instanz ist die Maßeinheit für die Datenbank-Engine Wiederherstellbarkeit. Es steuert den Lebenszyklus aller Dateien verwendet, um die Integrität der Daten in einem Satz von Datenbankdateien zu schützen. Diese Dateien enthalten die Prüfpunktdatei und die Transaktionsprotokolldateien.

Die maximale Anzahl der Instanzen, die jeweils erstellt werden können wird durch JET_paramMaxInstances, gesteuert, die durch einen Aufruf von JetSetSystemParameterkonfiguriert werden können. Wenn die Datenbank-Engine zum ersten Mal initialisiert wird, werden JetInit eine Reihe von Dateien zur Unterstützung von dieser Instanz erstellen. Diese Dateien enthalten eine Prüfpunktdatei (mit dem Namen <JET_paramBaseName>.(CHK), eine Reihe von reservierten Transaktion Protokolldateien (mit dem Namen RES1.Protokoll- und RES2.Protokoll), eine anfängliche Transaktionsprotokoll-Datei (namens <JET_paramBaseName>.Protokoll), und eine temporäre Datenbankdatei (gemäß JET_paramTempPathbezeichnet). Wenn JET_paramRecovery auf "Off" gesetzt ist werden die Prüfpunktdatei und-Protokolldateien nicht erstellt. Wenn JET_paramMaxTemporaryTables auf 0 (null) festgelegt ist wird die temporäre Datenbankdatei nicht erstellt werden. Diese Dateien der lokalen Festplatte Speicherbedarf einer Instanz darstellen und sorgfältig verwaltet werden müssen. Wenn diese Dateien einzeln oder in Bezug auf voneinander beschädigt sind möglicherweise in der Datenbanken für die Instanz gespeicherten Daten verloren.

Wenn die Datenbank-Engine mit einem vorhandenen Satz von Transaktionsprotokolldateien initialisiert wird werden diese Dateien überprüft werden, um festzustellen, ob die vorherige Version der Instanz von einem Absturz verursacht wurde. Wenn ein Absturz erkannt wird automatisch Wiederherstellung ausgeführt werden. Dieser Prozess wiederherstellen die Datenbanken, die-Instanz zugeordnet ist, während der vorherigen Version des Moduls und speichern Sie die Änderungen an der Datenbank zurück. Das Ergebnis werden Datenbanken, die Transaktion konsistent sind. Es ist möglich, damit dieser Prozess seit einiger Zeit ausgeführt werden, wenn die Anzahl der Transaktionsprotokolldateien für die Datenbanken wiedergeben groß ist.

Dass JetInit Notfallwiederherstellung ausgeführt wird, ist es möglich, für nahezu alle Fehler-Datenbankmoduls im Fall eines Ausfalls zurückgegeben werden soll. In der Praxis werden die meisten Fehler in der Bereitstellung in zwei Kategorien unterteilen: Daten Beschädigung und den Dateinamen fehlerhafte Verwaltung. Beschädigung der Daten wird selbst in die folgenden oder ähnliche Fehler am häufigsten manifest:

  • JET_errReadVerifyFailure

  • JET_errLogFileCorrupt

  • JET_errCheckpointCorrupt

Diese Fehler werden fast immer durch Hardwareprobleme verursacht und daher können nicht vermieden werden kann. Die fehlerhafte Datei Verwaltung wird selbst in die folgenden oder ähnliche Fehler am häufigsten manifest:

  • JET_errMissingLogFile

  • JET_errAttachedDatabaseMismatch

  • JET_errDatabaseSharingViolation

  • JET_errInvalidLogSequence

Wenn die Wiederherstellung auf einem Satz von Protokollen ausgeführt wird, für welche nicht alle Datenbanken vorhanden (die den Fehler JET_errAttachedDatabaseMismatch unter normalen Umständen zurückgibt), und der Client möchte Wiederherstellung trotz fehlenden Datenbanken fortgesetzt, der JET_ BitReplayIgnoreMissingDB kann verwendet werden, um die Wiederherstellung für die verfügbaren Datenbanken fortfahren. Diese Fehler werden von der Anwendung verhindert. Die Anwendung muss darauf achten, dass das Repository dieser Dateien vor Änderungen durch äußeren Kräfte wie der Benutzer oder andere Anwendungen schützen können. Wenn die Anwendung benötigt eine Instanz vollständig gelöscht, müssen alle Dateien, die mit der Instanz verknüpft gelöscht werden. Dazu gehören die Prüfpunktdatei, die Transaktionsprotokolldateien und alle Datenbankdateien auf die Instanz angefügt.

Die Funktion JetInit verhält sich anders, im Hinblick auf die Datenbankdateien an die Instanz zwischen Windows 2000 und spätere Versionen angefügt.

Windows 2000:  Jede Datenbank, die während einer vorherigen Version dieser Instanz der Instanz angeschlossen bleibt in Windows 2000-Instanz angefügt, nach dem erfolgreichen JetInit Abschluss . Es ist nicht erforderlich für den Aufruf JetAttachDatabase nach JetInit , um sicherzustellen, dass die Datenbank zugreifen. Wenn die Funktion JetAttachDatabase nach der JetInit -Funktion aufgerufen wird, wird die Warnung JET_wrnDatabaseAttached zurückgegeben. Diese Warnung gibt an, dass die Datenbank Anlage beibehalten wurde und ignoriert werden kann.

Windows XP:  In Windows XP und spätere Versionen werden automatisch alle Datenbanken aus der Instanz von JetInitgetrennt. Dies bedeutet, dass JetAttachDatabase immer in diesem Fall nach JetInit aufgerufen werden muss.

Jeder Anwendung Ausführung unter Windows 2000 und spätere Versionen geschrieben wurden, muss nach JetInitimmer JetAttachDatabase aufrufen. Wenn die Anwendung ausgeführt, klicken Sie auf Windows 2000 wird erwarten es muss JET_wrnDatabaseAttached in einigen Fällen finden Sie unter. Weitere Informationen finden Sie unter JetAttachDatabase .

Voraussetzungen

-Client,

Erfordert Windows Vista, Windows XP oder Windows 2000 Professional.

Server

WindowsServer 2008, WindowsServer 2003 oder Windows 2000 Server benötigt.

Kopfzeile

In Esent.h deklariert.

Library

Verwenden Sie ESENT.lib.

DLL

Erfordert "ESENT.dll".

Siehe auch

Extensible Storage Engine Dateien
JET_ERR
JET_GRBIT
JET_INSTANCE
JET_paramMaxTemporaryTables
JET_paramRecovery
JetAttachDatabase
JetCreateInstance
JetInit3
JetSetSystemParameter