Fonction JetCreateInstance

S’applique à : Windows | Windows Serveurs

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 l’instance nouvellement créée.

szInstanceName

Identificateur de chaîne unique pour l’instance à créer. Cette chaîne doit être unique au sein d’un processus donné hébergeant le moteur de base de données.

Remarque Une valeur NULL est traitée comme un identificateur de chaîne valide pour une instance. Une seule 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 d’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’a pas de sens lorsqu’elle était associé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 d’instance unique (Windows mode de compatibilité 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 l’identificateur correspondant sera retourné. À ce stade, tous les paramètres système de l’instance auront les valeurs des paramètres système par défaut globaux. Une fois qu’une instance sera allouée, elle doit être arrêtée et/ou libérée ultérieurement.

En cas d’échec, une erreur qui représente la cause de l’échec est retournée et aucune instance n’est allouée.

Notes

Une instance doit être initialisée avec un appel à JetInit avant de pouvoir être utilisée par une autre chose que JetSetSystemParameter.

Une instance est détruite 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 pouvant être créées à un moment donné est contrôlé par JET_paramMaxInstances, qui peut être configurée par un appel à JetSetSystemParameter. Une instance est l’unité de récupérabilité pour le 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 s’exécute correctement, le moteur de base de données est automatiquement remplacé par le mode multi-instance comme un effet secondaire de cet appel. si l’application souhaite autoriser une seule instance du processus, JetInit doit être utilisé pour démarrer le moteur de base de données en mode de compatibilité 2000 Windows.

S’il est présent, le szDisplayName sera utilisé pour identifier l’instance dans des emplacements tels que le journal des événements ou vers d’autres appelants comme des applications de sauvegarde (via des fonctions telles que JetGetInstanceInfo ou JetOSSnapshotFreeze). Si le nom complet n’est pas fourni, le szInstanceName unique est utilisé à la place, s’il est présent ; sinon, une chaîne vide est retournée. Si le mode d’exécution n’a pas été défini pour le moteur, après cet appel, il sera défini en mode multi-instance.

La séquence de démarrage classique d’un processus potentiellement exécutant plusieurs instances de jet serait la suivante :

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 au cours de cet appel afin d’effectuer une initialisation et une configuration de base du système. Un certain nombre de ces étapes peuvent entraîner des erreurs spécifiques à partir de JET_errOutOfMemory mais d’autres également (voir les erreurs ci-dessus).

Spécifications

Condition requise Valeur

Client

requiert Windows Vista ou Windows XP.

Serveur

requiert Windows server 2008 ou Windows server 2003.

En-tête

Déclaré dans esent. h.

Bibliothèque

Utilisez ESENT. lib.

DLL

Requiert ESENT.dll.

Unicode

Implémenté en tant que JetCreateInstanceW (Unicode) et JetCreateInstanceA (ANSI).

Voir aussi

fichiers de moteur d’Stockage Extensible
JET_ERR
JET_INSTANCE
JetCreateInstance2
JetEnableMultiInstance
JetGetInstanceInfo
JetInit
JetInit2
JetOSSnapshotFreeze
JetSetSystemParameter
JetTerm
JetTerm2