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