JetCreateInstance2-Funktion

Gilt für: Windows | Windows Server

JetCreateInstance2-Funktion

Die JetCreateInstance2-Funktion wird verwendet, um eine neue instance der Datenbank-Engine für die Verwendung in einem einzelnen Prozess zuzuweisen, wobei ein Anzeigename angegeben ist.

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 instance empfängt.

szInstanceName

Gibt einen eindeutigen Zeichenfolgenbezeichner für die zu erstellende instance an. Diese Zeichenfolge muss innerhalb eines bestimmten Prozesses, der die Datenbank-Engine hostt, eindeutig sein.

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

szDisplayName

Ein Anzeigename für die zu erstellende instance. 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 ist.

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_errInstanceNameInUse

Der angegebene instance Name 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 die Pinstance NULL ist.

JET_errRunningInOneInstanceMode

Fehler beim Vorgang, da er nicht verwendet werden kann, wenn die Datenbank-Engine im Einzelmodus instance (Windows 2000-Kompatibilitätsmodus) ausgeführt wird.

JET_errTooManyInstances

Ein neuer 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 ein neuer instance zugewiesen, 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 eine instance zugewiesen wird, muss sie beendet und/oder später freigegeben werden.

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

Bemerkungen

Ein instance muss mit einem Aufruf von JetInit initialisiert werden, bevor er von einem anderen 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 von JET_paramMaxInstances gesteuert, die durch einen Aufruf von JetSetSystemParameter konfiguriert werden kann. Ein instance ist die Einheit der Wiederherstellbarkeit für die Datenbank-Engine. Es 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 eine instance 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 instance an Orten wie Ereignisprotokoll oder gegenüber anderen Aufrufern wie Sicherungsanwendungen (über Funktionen wie JetGetInstanceInfo oder JetOSSnapshotFreeze) zu identifizieren. Wenn der Anzeigename nicht angegeben wird, wird stattdessen der eindeutige parameter szInstanceName verwendet, falls 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 den Modus mit mehreren instance festgelegt.

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

  • Ein Aufruf von JetCreateInstance2, der die instance ordnet und benennt.

  • Mehrere Aufrufe von JetSetSystemParameter für diesen instance, um verschiedene Systemparameter festzulegen. Beachten Sie, dass einige Systemparameter für jeden instance eindeutig sein müssen (z. B. JET_paramSystemPath oder JET_paramLogFilePath), sodass höchstwahrscheinlich jeder dieser Parameter festgelegt werden muss.

  • Starten Sie die instance mit JetInit oder JetInit2. Verwenden Sie JetTerm oder JetTerm2, um eine instance zu beenden und/oder frei zu machen.

Wenn dies der erste instance ist, der 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, die mit JET_errOutOfMemory aber auch anderen beginnen (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.

Kopfzeile

Deklariert in Esent.h.

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