JetCreateInstance2-Funktion

Gilt für: Windows | Windows Server

JetCreateInstance2-Funktion

Die JetCreateInstance2-Funktion wird verwendet, um eine neue Instanz der Datenbank-Engine für die Verwendung in einem einzelnen Prozess mit einem angegebenen Anzeigenamen zu zuordnen.

**Windows XP:**JetCreateInstance2 wird in Windows XP eingeführt.

    JET_ERR JET_API JetCreateInstance2(
      __out         JET_INSTANCE* pinstance,
      __in_opt      const tchar* szInstanceName,
      __in_opt      const tchar* szDisplayName,
      __in          JET_GRBIT grbit
    );

Parameter

Pinstance

Der Ausgabepuffer, der die neu erstellte Instanz erhält.

szInstanceName

Gibt einen eindeutigen Zeichenfolgenbezeichner für die zu erstellende Instanz an. 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 -Instanz behandelt. Nur eine Instanz kann einen NULL-Zeichenfolgenbezeichner haben.

szDisplayName

Ein Anzeigename für die zu erstellende Instanz. Wenn dieser Parameter nicht vorhanden ist, wird davon ausgegangen, dass sein Wert NULL ist.

grbit

Für die zukünftige Verwendung reserviert. Wenn dieser Parameter nicht vorhanden ist, wird davon ausgegangen, dass sein Wert 0 (null) ist.

Rückgabewert

Diese Funktion gibt den JET_ERR datentyp mit einem der folgenden Rückgabecodes zurück. Weitere Informationen zu den möglichen ESE-Fehlern finden Sie unter Extensible Storage Engine Errors and Error Handling Parameters.

Rückgabecode

Beschreibung

JET_errSuccess

Der Vorgang wurde erfolgreich abgeschlossen.

JET_errInstanceNameInUse

Der angegebene Instanzname wird für diesen Prozess bereits 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 für JetCreateInstance passieren, wenn pinstance NULL ist.

JET_errRunningInOneInstanceMode

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

JET_errTooManyInstances

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

Bei Erfolg wird eine neue Instanz zugeordnet, und der Bezeichner dafür wird zurückgegeben. An diesem Punkt verfügen alle Systemparameter für die Instanz über die Werte der globalen Standardsystemparameter. Nachdem eine Instanz zugeordnet wurde, muss sie später beendet und/oder wieder aufgehoben werden.

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

Bemerkungen

Eine -Instanz muss mit einem Aufruf von JetInit initialisiert werden, bevor sie von etwas anderem als JetSetSystemParameter verwendet werden kann.

Eine -Instanz wird durch einen Aufruf der JetTerm-Funktion zerstört, auch wenn diese Instanz nie mit JetInit initialisiert wurde. Die maximale Anzahl von Instanzen, die zu einem beliebigen Zeitpunkt erstellt werden können, wird durch JET_paramMaxInstances gesteuert, das durch einen Aufruf von JetSetSystemParameter konfiguriert werden kann. Eine -Instanz 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 Gruppe von Datenbankdateien verwendet werden. Zu diesen Dateien gehören die Prüfpunktdatei und die Transaktionsprotokolldateien.

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

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

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

  • Ein Aufruf von JetCreateInstance2, der die Instanz zuteilen und benennen wird.

  • Mehrere Aufrufe von JetSetSystemParameter für diese Instanz, um unterschiedliche Systemparameter festlegen zu können. Beachten Sie, dass einige Systemparameter für jede Instanz eindeutig sein müssen (z. B. JET_paramSystemPath oder JET_paramLogFilePath), sodass wahrscheinlich jeder dieser Parameter festgelegt werden muss.

  • Starten Sie die Instanz mit JetInit oder JetInit2. Um eine Instanz zu beenden und/oder frei zu geben, verwenden Sie JetTerm oder JetTerm2.

Wenn dies die erste Instanz ist, die gestartet werden soll, gibt es eine Reihe zusätzlicher Schritte, die während dieses Aufrufs ausgeführt werden, um grundlegende Systemin initialisierung und Konfiguration auszuführen. Eine Reihe dieser Schritte kann zu bestimmten Fehlern führen, die mit JET_errOutOfMemory, aber auch anderen (weitere Informationen finden Sie unter Rückgabewerte).

Anforderungen

Anforderung Wert

Client

Erfordert Windows Vista oder Windows XP.

Server

Erfordert Windows Server 2008 oder Windows Server 2003.

Header

Wird in Esent.h deklariert.

Bibliothek

Verwenden Sie ESENT.lib.

DLL

Erfordert ESENT.dll.

Unicode

Implementiert als JetCreateInstance2W (Unicode) und JetCreateInstance2A (ANSI).

Weitere Informationen

JET_ERR
JET_INSTANCE
JetCreateInstance
JetEnableMultiInstance
JetGetInstanceInfo
JetInit
JetInit2
JetOSSnapshotFreeze
JetSetSystemParameter
JetTerm
JetTerm2