Freigeben über


JetCreateInstance-Funktion

Gilt für: Windows | Windows Server

JetCreateInstance-Funktion

Die JetCreateInstance-Funktion weist eine neue instance der Datenbank-Engine zur Verwendung in einem einzelnen Prozess zu.

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

    JET_ERR JET_API JetCreateInstance(
      __out         JET_INSTANCE* pinstance,
      __in_opt      const tchar* szInstanceName
    );

Parameter

Pinstance

Der Ausgabepuffer, der die neu erstellte instance empfängt.

szInstanceName

Ein eindeutiger Zeichenfolgenbezeichner für die zu erstellende instance. Diese Zeichenfolge muss innerhalb eines bestimmten Prozesses, der die Datenbank-Engine hosten, eindeutig sein.

Hinweis Ein NULL-Wert wird als gültiger Zeichenfolgenbezeichner für eine instance behandelt. Nur eine instance kann einen NULL-Zeichenfolgenbezeichner aufweisen.

Rückgabewert

Diese Funktion gibt den Datentyp JET_ERR 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_errInstanceNameInUse

Der angegebene instance Name wird bereits für diesen Prozess verwendet.

JET_errInvalidParameter

Einer der bereitgestellten Parameter enthielt einen unerwarteten Wert oder einen Wert, der in Kombination mit dem Wert eines anderen Parameters nicht sinnvoll war. Dies kann bei JetCreateInstance passieren, wenn die PinstanceNULL ist.

JET_errRunningInOneInstanceMode

Der Vorgang ist fehlgeschlagen, da er nicht verwendet werden kann, wenn die Datenbank-Engine im Einzel-instance-Modus (Windows 2000-Kompatibilitätsmodus) ausgeführt wird.

JET_errTooManyInstances

Eine neue instance konnte nicht erstellt werden, da die maximale Anzahl von Instanzen erreicht wurde. Die maximale Anzahl unterstützter Instanzen wird mithilfe von JetSetSystemParameter mit JET_paramMaxInstances konfiguriert.

Bei Erfolg wird eine neue instance zugeordnet, und der Bezeichner dafür wird zurückgegeben. An diesem Punkt verfügen alle Systemparameter für die instance über die Werte der globalen Standardsystemparameter. Sobald ein instance zugeordnet wird, muss er beendet und/oder später freigegeben werden.

Bei einem Fehler wird ein Fehler zurückgegeben, der die Fehlerursache darstellt, und es wird kein instance zugeordnet.

Bemerkungen

Ein instance muss mit einem Aufruf von JetInit initialisiert werden, bevor er von einem anderen Element als JetSetSystemParameter verwendet werden kann.

Ein instance wird durch einen Aufruf der JetTerm-Funktion zerstört, auch wenn diese instance nie mit JetInit initialisiert wurde. Die maximale Anzahl von Instanzen, die gleichzeitig erstellt werden können, wird durch JET_paramMaxInstances gesteuert, die durch einen Aufruf von JetSetSystemParameter konfiguriert werden kann. Ein instance ist die Einheit der Wiederherstellbarkeit für die Datenbank-Engine. Sie steuert den Lebenszyklus aller Dateien, die zum Schutz der Integrität der Daten in einer Reihe von Datenbankdateien verwendet werden. Zu diesen Dateien gehören die Prüfpunktdatei und die Transaktionsprotokolldateien.

Wenn die Funktion erfolgreich ist, wird die Datenbank-Engine als Nebeneffekt dieses Aufrufs automatisch in den Modus mit mehreren instance geändert. Wenn die Anwendung nur einen instance im Prozess zulassen möchte, sollte JetInit verwendet werden, um die Datenbank-Engine im Windows 2000-Kompatibilitätsmodus zu starten.

Falls vorhanden, wird szDisplayName verwendet, um die instance an Orten wie dem Ereignisprotokoll oder an andere Aufrufer wie Sicherungsanwendungen (über Funktionen wie JetGetInstanceInfo oder JetOSSnapshotFreeze) zu identifizieren. Wenn der Anzeigename nicht angegeben wird, wird stattdessen der eindeutige szInstanceName verwendet, sofern vorhanden, andernfalls wird eine leere Zeichenfolge zurückgegeben. Wenn der Ausführungsmodus für die Engine nicht festgelegt wurde, wird sie nach diesem Aufruf auf multi-instance-Modus festgelegt.

Die typische Startsequenz für einen Prozess, der möglicherweise mehrere Jet-Instanzen ausführt, wäre:

Wenn dies die erste instance ist, die gestartet werden soll, gibt es eine Reihe zusätzlicher Schritte, die während dieses Aufrufs ausgeführt werden, um eine grundlegende Systeminitialisierung und -konfiguration vorzunehmen. Eine Reihe dieser Schritte kann zu bestimmten Fehlern führen, beginnend mit JET_errOutOfMemory aber auch anderen (siehe Fehler oben).

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 JetCreateInstanceW (Unicode) und JetCreateInstanceA (ANSI).

Weitere Informationen

Erweiterbare Speicher-Engine-Dateien
JET_ERR
JET_INSTANCE
JetCreateInstance2
JetEnableMultiInstance
JetGetInstanceInfo
JetInit
JetInit2
JetOSSnapshotFreeze
JetSetSystemParameter
JetTerm
JetTerm2