JetCreateInstance-Funktion
Gilt für: Windows | Windows Server
JetCreateInstance-Funktion
Die JetCreateInstance-Funktion ordnet eine neue Instanz 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 Instanz empfängt.
szInstanceName
Ein eindeutiger Zeichenfolgenbezeichner für die zu erstellende Instanz. Diese Zeichenfolge muss innerhalb eines bestimmten Prozesses, der die Datenbank-Engine hostet, eindeutig sein.
Hinweis Ein NULL-Wert wird als gültiger Zeichenfolgenbezeichner für eine -Instanz behandelt. Nur eine Instanz kann über einen NULL-Zeichenfolgenbezeichner verfügen.
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 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 pinstance NULList. |
JET_errRunningInOneInstanceMode |
Fehler beim Vorgang, weil 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 von JET_paramMaxInstanceskonfiguriert. |
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. Sobald eine Instanz zugeordnet 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 keine Instanz zugeordnet.
Hinweise
Eine -Instanz muss mit einem Aufruf von JetInit initialisiert werden, bevor sie von anderen Instanzen als JetSetSystemParameterverwendet werden kann.
Eine -Instanz wird durch einen Aufruf der JetTerm-Funktion zerstört, auch wenn diese Instanz nie mit JetInitinitialisiert wurde. Die maximale Anzahl von Instanzen, die jederzeit erstellt werden können, wird durch JET_paramMaxInstancesgesteuert, die durch einen Aufruf von JetSetSystemParameterkonfiguriert 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 einem Satz 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 automatisch als Nebeneffekt dieses Aufrufs 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 Kompatibilitätsmodus Windows 2000 zu starten.
Falls vorhanden, wird szDisplayName verwendet, um die Instanz an Stellen wie dem 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 szInstanceName verwendet, sofern vorhanden, andernfalls wird eine leere Zeichenfolge zurückgegeben. Wenn für die Engine der Ausführungsmodus nicht festgelegt war, 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ührt, wäre:
Ein Aufruf von JetCreateInstance2, der die Instanz zuordnet und benennt.
Mehrere Aufrufe von JetSetSystemParameter für diese Instanz, um verschiedene Systemparameter festzulegen. Beachten Sie, dass einige Systemparameter pro 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 machen, muss JetTerm, JetTerm2 verwendet werden.
Wenn dies die erste Instanz ist, die gestartet wird, 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 beginnen, aber auch zu anderen (siehe fehler oben).
Anforderungen
| Anforderung | Wert |
|---|---|
Client |
Erfordert Windows Vista oder Windows XP. |
Server |
Erfordert Windows Server 2008 oder Windows Server 2003. |
Header |
Deklariert in Esent.h. |
Bibliothek |
Verwenden Sie ESENT.lib. |
DLL |
Erfordert ESENT.dll. |
Unicode |
Implementiert als JetCreateInstanceW (Unicode) und JetCreateInstanceA (ANSI). |
Weitere Informationen
Erweiterbare Storage-Engine-Dateien
JET_ERR
JET_INSTANCE
JetCreateInstance2
JetEnableMultiInstance
JetGetInstanceInfo
JetInit
JetInit2
JetOSSnapshotFreeze
JetSetSystemParameter
JetTerm
JetTerm2