Fonction JetCreateInstance
S’applique à : Windows | Windows Server
Fonction JetCreateInstance
La fonction JetCreateInstance alloue une nouvelle instance du moteur de base de données pour une utilisation dans un processus unique.
Windows XP : JetCreateInstance est introduit dans Windows XP.
JET_ERR JET_API JetCreateInstance(
__out JET_INSTANCE* pinstance,
__in_opt const tchar* szInstanceName
);
Paramètres
Pinstance
Mémoire tampon de sortie qui reçoit le instance nouvellement créé.
szInstanceName
Identificateur de chaîne unique pour le instance à créer. Cette chaîne doit être unique au sein d’un processus donné hébergeant le moteur de base de données.
Note Une valeur NULL est traitée comme un identificateur de chaîne valide pour un instance. Un seul instance peut avoir un identificateur de chaîne NULL.
Valeur renvoyée
Cette fonction retourne le type de données JET_ERR avec l’un des codes de retour suivants. Pour plus d’informations sur les erreurs ESE possibles, consultez Erreurs du moteur de stockage extensible et Paramètres de gestion des erreurs.
Code de retour |
Description |
---|---|
JET_errSuccess |
L’opération s’est terminée avec succès. |
JET_errInstanceNameInUse |
Le nom de instance spécifié est déjà utilisé pour ce processus. |
JET_errInvalidParameter |
L’un des paramètres fournis contenait une valeur inattendue ou contenait une valeur qui n’était pas logique lorsqu’elle était combinée à la valeur d’un autre paramètre. Cela peut se produire pour JetCreateInstance lorsque pinstance a la valeur NULL. |
JET_errRunningInOneInstanceMode |
L’opération a échoué, car elle ne peut pas être utilisée lorsque le moteur de base de données fonctionne en mode instance unique (mode de compatibilité Windows 2000). |
JET_errTooManyInstances |
Impossible de créer une nouvelle instance, car le nombre maximal d’instances a été atteint. Le nombre maximal d’instances prises en charge est configuré à l’aide de JetSetSystemParameter à l’aide de JET_paramMaxInstances. |
En cas de réussite, une nouvelle instance sera allouée et son identificateur sera retourné. À ce stade, tous les paramètres système du instance auront les valeurs des paramètres système par défaut globaux. Une fois qu’une instance est allouée, elle doit être arrêtée et/ou libérée ultérieurement.
En cas d’échec, une erreur représentant la cause de l’échec est retournée et aucune instance n’est allouée.
Notes
Un instance doit être initialisé avec un appel à JetInit avant de pouvoir être utilisé par autre chose que JetSetSystemParameter.
Un instance est détruit par un appel à la fonction JetTerm, même si cette instance n’a jamais été initialisée à l’aide de JetInit. Le nombre maximal d’instances qui peuvent être créées à un moment donné est contrôlé par JET_paramMaxInstances, qui peut être configuré par un appel à JetSetSystemParameter. Une instance est l’unité de récupération du moteur de base de données. Il contrôle le cycle de vie de tous les fichiers utilisés pour protéger l’intégrité des données dans un ensemble de fichiers de base de données. Ces fichiers incluent le fichier de point de contrôle et les fichiers journaux des transactions.
Si la fonction réussit, le moteur de base de données passe automatiquement au mode multi-instance comme effet secondaire de cet appel. Si l’application souhaite autoriser une seule instance dans le processus, JetInit doit être utilisé pour démarrer le moteur de base de données en mode de compatibilité Windows 2000.
S’il est présent, le szDisplayName sera utilisé pour identifier les instance à des endroits tels que le journal des événements ou vers d’autres appelants comme les applications de sauvegarde (par le biais de fonctions telles que JetGetInstanceInfo ou JetOSSnapshotFreeze). Si le nom d’affichage n’est pas fourni, l’unique szInstanceName est utilisé à la place s’il est présent, sinon une chaîne vide est retournée. Si le mode d’exécution du moteur n’a pas été défini, après cet appel, il sera défini sur le mode multi-instance.
La séquence de démarrage classique pour un processus qui exécute potentiellement plusieurs instances Jet est la suivante :
Appel à JetCreateInstance2 qui alloue et nomme le instance.
Plusieurs appels à JetSetSystemParameter pour ce instance afin de définir différents paramètres système. Notez que certains paramètres système doivent être uniques par instance (comme JET_paramSystemPath ou JET_paramLogFilePath) et qu’il est très probable qu’il soit nécessaire de les définir.
Démarrez le instance à l’aide de JetInit ou JetInit2. Pour mettre fin et/ou libérer un instance, JetTerm, JetTerm2 doit être utilisé.
S’il s’agit de la première instance à démarrer, il existe un certain nombre d’étapes supplémentaires qui seront exécutées pendant cet appel afin d’effectuer l’initialisation et la configuration système de base. Un certain nombre de ces étapes peuvent entraîner des erreurs spécifiques commençant par JET_errOutOfMemory mais d’autres (voir les erreurs ci-dessus).
Spécifications
Condition requise | Valeur |
---|---|
Client |
Nécessite Windows Vista ou Windows XP. |
Serveur |
Nécessite Windows Server 2008 ou Windows Server 2003. |
En-tête |
Déclaré dans Esent.h. |
Bibliothèque |
Utilisez ESENT.lib. |
DLL |
Nécessite ESENT.dll. |
Unicode |
Implémenté en tant que JetCreateInstanceW (Unicode) et JetCreateInstanceA (ANSI). |
Voir aussi
Fichiers du moteur de stockage extensibles
JET_ERR
JET_INSTANCE
JetCreateInstance2
JetEnableMultiInstance
JetGetInstanceInfo
JetInit
JetInit2
JetOSSnapshotFreeze
JetSetSystemParameter
JetTerm
JetTerm2