Fonction JetInit3

S’applique à : Windows | Windows Server

Fonction JetInit3

La fonction JetInit3 place le moteur de base de données dans un état dans lequel il peut prendre en charge l’utilisation des fichiers de base de données par l’application. Le moteur doit déjà être correctement configuré pour l’initialisation, ce que vous effectuez à l’aide de la fonction JetSetSystemParameter . Notez que la récupération sur incident de base de données se produit automatiquement dans le cadre du processus d’initialisation.

Windows Vista:JetInit3 est introduit dans Windows Vista.

    JET_ERR JET_API JetInit3(
      __in_out_opt  JET_INSTANCE* pinstance,
      __in_opt      JET_RSTINFO* prstInfo,
      __in          JET_GRBIT grbit
    );

Paramètres

Pinstance

Instance que vous utilisez pour un appel particulier. L’utilisation de ce paramètre dépend du mode de fonctionnement du moteur. Si le moteur fonctionne en mode hérité (mode de compatibilité Windows 2000), dans lequel un seul instance est pris en charge, vous pouvez définir ce paramètre sur NULL ou sur une mémoire tampon de sortie valide contenant null ou JET_instanceNil, qui retourne le handle de instance global créé en tant qu’effet secondaire de l’initialisation. Ce handle instance peut ensuite être passé à n’importe quelle autre API qui prend une instance. Si le moteur fonctionne en mode multi-instance, vous devez définir ce paramètre sur une mémoire tampon d’entrée valide qui contient le handle instance retourné par la fonction JetCreateInstance en cours d’initialisation.

prstInfo

Paramètres de récupération supplémentaires utilisés pour remappage des bases de données pendant la récupération, pour définir la position où la récupération s’arrêtera ou pour déterminer la status de récupération actuelle.

grbit

Groupe de bits qui spécifie zéro ou plusieurs des options répertoriées et définies dans le tableau suivant.

Valeur

Signification

JET_bitReplayReplicatedLogFiles

Cette valeur est réservée à une utilisation ultérieure.

JET_bitCreateSFSVolumeIfNotExist

Cette valeur est réservée à une utilisation ultérieure.

JET_bitReplayIgnoreMissingDB

Cette valeur permet à l’utilisateur d’exécuter la récupération sur un ensemble de fichiers journaux, même en l’absence des bases de données attachées au fichier journal défini à un moment donné.

JET_bitRecoveryWithoutUndo

Cette valeur permet à l’utilisateur d’effectuer une récupération, mais uniquement jusqu’à la phase d’annulation (et non comprise). À l’aide de cette valeur, des journaux de transactions supplémentaires peuvent être copiés et appliqués.

JET_bitTruncateLogsAfterRecovery

Cette valeur entraîne la troncation des fichiers journaux pendant une récupération réversible réussie.

JET_bitReplayMissingMapEntryDB

Cette valeur entraîne la valeur par défaut d’une entrée de mappage de base de données manquante au même emplacement.

JET_bitReplayIgnoreLostLogs

Cette valeur entraîne l’ignorer des journaux perdus à la fin du flux de journaux pendant une récupération.

Windows 7:JET_bitReplayIgnoreLostLogs est introduit dans Windows 7.

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 possibles du moteur de stockage extensible (ESE), consultez Erreurs du moteur de stockage extensible et paramètres de gestion des erreurs.

Notes

Un instance doit être initialisé avec un appel à la fonction JetInit3 avant de pouvoir être utilisé par autre chose que la fonction 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 la fonction JetInit. 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. Notez que JetTerm ne doit pas être appelé si la fonction JetInit3 échoue. Toutefois, JetTerm doit toujours être appelé pour toutes les instances créées par JetCreateInstance2 si JetInit3 n’a jamais été appelé ou si JetInit3 réussit.

Si la récupération s’exécute sur un ensemble de journaux pour lesquels toutes les bases de données associées ne sont pas présentes (ce qui retourne l’erreur JET_errAttachedDatabaseMismatch dans des circonstances normales), et que le client souhaite que la récupération se poursuive malgré les bases de données manquantes, l’erreur JET_bitReplayIgnoreMissingDB est utilisée pour poursuivre la récupération pour les bases de données disponibles.

Étant donné que la récupération sur incident ne se produit généralement pas sur la même machine (et avec la même configuration) qu’au moment de l’incident, une base de données ne change généralement pas d’emplacement. Dans certains scénarios, comme le déplacement de fichiers vers un autre ordinateur ou la restauration de instantané sauvegarde à différents emplacements, cela n’est plus vrai. La fonction JetInit3 vous permet de spécifier un mappage (à l’aide des structures JET_RSTINFO et JET_RSTMAP ) entre l’ancien emplacement de la base de données et son nouvel emplacement. En fait, vous avez uniquement besoin du nouvel emplacement tant que les fichiers de base de données sont présents à cet emplacement. Dès que vous connaissez les emplacements des bases de données restaurées, la signature de base de données est utilisée pour identifier la base de données via le processus de restauration. Vous aurez besoin de l’emplacement de base de données d’origine uniquement si vous devez recréer une base de données, auquel cas la signature est connue.

En outre, si vous devez arrêter une récupération après une opération Annuler, vous pouvez spécifier une position de journal particulière à laquelle la récupération s’arrêtera. Notez que cela inclut la possibilité de s’arrêter à la fin d’une génération de journal particulière si la position spécifiée fait partie de la génération, mais au-delà de la fin du journal réel.

Pour plus d’informations, consultez la section « Remarques » dans la rubrique JetInit .

Spécifications

Condition requise Valeur

Client

Nécessite Windows Vista.

Serveur

Nécessite Windows Server 2008.

En-tête

Déclaré dans Esent.h.

Bibliothèque

Utilise ESENT.lib.

DLL

Nécessite ESENT.dll.

Unicode

Implémenté en tant que JetInit3W (Unicode) et JetInit3A (ANSI).

Voir aussi

Fichiers du moteur de stockage extensibles
JET_ERR
JET_GRBIT
JET_INSTANCE
JET_RSTINFO
JET_RSTMAP
JetCreateInstance
JetInit
JetInit2
JetSetSystemParameter
Paramètres de ressource