Freigeben über


JetCreateInstance2-Funktion

Letzte Änderung: Freitag, 27. Februar 2015

Gilt für: Windows | Windows Server

JetCreateInstance2-Funktion

Der JetCreateInstance2 -Funktion wird eine neue Instanz der Datenbank-Engine für die Verwendung in einem einzelnen Prozess mit dem angegebenen Anzeigenamen zuweisen.

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 erhalten.

szInstanceName

Gibt einen eindeutigen Zeichenfolgenbezeichner für die Instanz erstellt werden soll. Diese Zeichenfolge muss in einem bestimmten Prozess Hosten der Datenbank-Engine eindeutig sein.

Hinweis Ein NULL-Wert wird als gültige Zeichenfolgenbezeichner für eine Instanz behandelt. Nur eine Instanz ein Zeichenfolgenbezeichners NULL haben kann.

szDisplayName

Ein Anzeigename für die Instanz erstellt werden soll. Wenn dieser Parameter nicht vorhanden ist, wird davon ausgegangen, dass der Wert NULL sein.

JET_errInvalidGrbit

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

Return Value

Diese Funktion gibt den Datentyp der JET_ERR mit einem der folgenden Rückgabecodes. Weitere Informationen zu den möglichen ESE-Fehlern finden Sie unter Extensible Storage Engine-Fehler und Fehler behandeln Parameter.

Rückgabecode

Beschreibung

JET_errSuccess

Der Vorgang wurde erfolgreich abgeschlossen.

JET_errInstanceNameInUse

Der angegebene Instanzname wird bereits von diesem Prozess verwendet.

JET_errInvalidParameter

Einer der bereitgestellten Parameter einen unerwarteten Wert enthalten oder enthalten einen Wert, der nicht mit dem Wert eines anderen Parameters kombiniert keinen Sinn. Dies kann für JetCreateInstance auftreten, wenn der Pinstance NULL ist.

JET_errRunningInOneInstanceMode

Der Vorgang ist fehlgeschlagen, da es verwendet werden kann, wenn die Datenbank-Engine in Einzelinstanz-Modus (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 von unterstützten Instanzen wird mithilfe von JetSetSystemParameter mit JET_paramMaxInstanceskonfiguriert.

Bei Erfolg wird eine neue Instanz zugewiesen werden und die Verbindungskennung zurückgegeben. Zu diesem Zeitpunkt müssen alle Systemparameter für die Instanz die Werte der Systemparameter globaler Standard. Sobald eine Instanz zugeordnet wird, muss er beendet bzw. später freigegeben werden.

Bei einem Fehler eine Fehlermeldung, die die Ursache der fehlgeschlagenen zurückgegeben wird und keine Instanz reserviert 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 zerstört, auch wenn diese Instanz mit JetInitniemals initialisiert wurde. Die maximale Anzahl von Instanzen, die gleichzeitig erstellt werden können, wird durch JET_paramMaxInstances, gesteuert, die durch einen Aufruf von JetSetSystemParameterkonfiguriert werden können. Eine Instanz ist die Wiederherstellbarkeit für das Datenbankmodul. Er steuert den Lebenszyklus aller Dateien, die zum Schutz der Integrität der Daten in einem Satz von Datenbankdateien. Diese Dateien enthalten die Prüfpunktdatei und der Transaktionsprotokolldateien.

Wenn die Funktion erfolgreich ist, wird die Datenbank-Engine automatisch in mit mehreren Instanzen als Nebenwirkung des Aufrufs geändert werden. Wenn möchte, dass die Anwendung nur eine Instanz des Prozesses zu ermöglichen sollte JetInit verwendet werden, zum Starten der Datenbank-Engine in Windows 2000-Kompatibilitätsmodus festgesetzt.

Falls vorhanden, wird der Parameter SzDisplayName zum Identifizieren der Instanz an Orten wie Ereignisprotokoll oder auf anderen Aufrufern wie backup-Anwendungen (über Funktionen wie JetGetInstanceInfo oder JetOSSnapshotFreeze) verwendet werden. Gegebenenfalls der Anzeigename ist nicht, sofern der eindeutigen SzInstanceName Parameter stattdessen verwendet wird, wird eine leere Zeichenfolge andernfalls zurückgegeben. Wenn das Modul nicht festgelegt werden, nach diesem Aufruf Ausführungsmodus wird es in den Modus mit mehreren Instanzen festgelegt werden.

Typische Startsequenz für einen Prozess, der mehrere Instanzen von Jet ausgeführt werden würde:

  • Ein Aufruf von JetCreateInstance2 die reservieren und nennen Sie die Instanz.

  • Mehrere Aufrufe von JetSetSystemParameter für diese Instanz um verschiedene Systemparameter festlegen. Hinweis, die einige Systemparameter für jede Instanz (z. B. JET_paramSystemPath oder JET_paramLogFilePath) so wahrscheinlich eindeutig sein müssen, müssen jede dieser festgelegt werden.

  • Starten Sie die Instanz mithilfe von JetInit oder JetInit2. Um zu beenden und/oder eine Instanz frei, JetTerm ist oder JetTerm2.

Ist dies die erste Instanz gestartet werden soll, gibt es eine Reihe zusätzlicher Schritte, die ausgeführt wird, während dieses Aufrufs um grundlegende Systeminitialisierung und Konfiguration. Einige dieser Schritte möglicherweise bestimmte Fehler beginnend mit anderen JET_errOutOfMemory jedoch auch (Weitere Informationen finden Sie unter Return Values).

Voraussetzungen

-Client,

Erfordert Windows Vista oder Windows XP.

Server

Erfordert WindowsServer 2008 oder WindowsServer 2003.

Kopfzeile

In Esent.h deklariert.

Library

Verwenden Sie ESENT.lib.

DLL

"ESENT.dll" erfordert.

Unicode

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

Siehe auch

JET_ERR
JET_INSTANCE
JetCreateInstance
JetEnableMultiInstance
JetGetInstanceInfo
JetInit
JetInit2
JetOSSnapshotFreeze
JetSetSystemParameter
JetTerm ist
JetTerm2