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:
Ein Aufruf von JetCreateInstance2, der die instance ordnet und benament.
Mehrere Aufrufe von JetSetSystemParameter für diesen instance, um verschiedene Systemparameter festzulegen. Beachten Sie, dass einige Systemparameter pro 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. Um eine instance zu beenden und/oder frei zu machen, muss JetTerm, JetTerm2 verwendet werden.
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