Fonction JetOSSnapshotFreeze
S’applique à : Windows | Windows Server
Fonction JetOSSnapshotFreeze
La fonction JetOSSnapshotFreeze démarre une instantané. Tant que le instantané est en cours, aucune activité d’écriture sur disque du moteur ne peut avoir lieu.
Windows XP:JetOSSnapshotFreeze est introduit dans Windows XP.
JET_ERR JET_API JetOSSnapshotFreeze(
__in const JET_OSSNAPID snapId,
__out unsigned long* pcInstanceInfo,
__out JET_INSTANCE_INFO** paInstanceInfo,
__in const JET_GRBIT grbit
);
Paramètres
snapId
Identificateur de la session instantané.
pcInstanceInfo
Nombre d’instances en cours d’exécution dans le moteur qui font partie de la session instantané.
paInstanceInfo
Tableau de structures, une pour chaque instance qui fait partie de la session instantané, décrivant le instance et les bases de données qui en font partie.
grbit
Options de cet appel. Ce paramètre est réservé à une utilisation ultérieure et la seule valeur valide prise en charge est 0.
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_errInvalidParameter |
Les pointeurs fournis pour les paramètres de sortie sont NULL, le instantané session n’est pas valide ou le paramètre grbit n’est pas valide. |
JET_errOSSnapshotInvalidSequence |
La session instantané n’est pas dans l’état approprié pour démarrer un blocage (par exemple, un blocage précédent a échoué sur cette session auparavant). |
JET_errOSSnapshotNotAllowed |
Le moteur n’est pas dans un état dans lequel une instantané peut être effectuée. Une ou plusieurs sauvegardes de streaming sont déjà en cours, ou une ou plusieurs instances passent par des étapes de récupération ou se terminent. |
JET_errOSSnapshotInvalidSnapId |
L’identificateur de la session instantané n’est pas valide. |
JET_errOutOfMemory |
La fonction a échoué en raison d’une mémoire insuffisante. |
JET_errOutOfThreads |
La fonction a échoué, car un nouveau thread effectuant le blocage n’a pas pu démarrer. |
Si cette fonction réussit, il n’y aura pas d’E/S d’écriture émises pour les fichiers de base de données ou pour les fichiers journaux qui font partie des instances qui sont figées. En outre, les informations instance sont correctement renseignées et doivent être libérées ultérieurement en appelant JetFreeBuffer avec le pointeur vers le tableau d’informations instance qui a été retourné.
Si cette fonction échoue, le moteur continue de fonctionner normalement avec les AUTHENTIFICATION qui se produisent comme d’habitude. Il n’est pas nécessaire d’appeler JetOSSnapshotThaw si le blocage échoue. En outre, les informations instance ne seront pas remplies, il n’est donc pas nécessaire de libérer cette ressource.
Notes
Pendant la période de gel, aucune IE d’écriture n’est émise pour les bases de données jointes ou les journaux des transactions, bien qu’il puisse y avoir des E/S d’écriture émises dans les bases de données temporaires ou les fichiers de streaming.
L’état dans lequel les bases de données et les fichiers journaux seront pendant le gel (l’état dans lequel les fichiers se trouveraient dans une image d’instantané de volume) sera tel qu’une récupération normale sera possible si ces fichiers sont restaurés ultérieurement.
Étant donné qu’il n’y a aucune opération d’écriture pendant la période de gel, les appels d’API normaux dans le moteur peuvent être bloqués pendant cet intervalle. L’application cliente doit être en mesure de gérer les appels d’API qui peuvent prendre plus de temps que la normale en cas de blocage.
En raison des effets possibles décrits ci-dessus, il existe un délai d’attente interne après lequel la session instantané arrêtera la phase de gel même si les API effectuant le dégel ou l’abandon n’ont pas été appelées. La valeur du délai d’expiration peut être modifiée à l’aide du paramètre système JET_paramOSSnapshotTimeout . Notez que l’intervalle de gel typique est de 10 secondes, le délai d’expiration par défaut étant d’environ 60 secondes.
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 JetOSSnapshotFreezeW (Unicode) et JetOSSnapshotFreezeA (ANSI). |
Voir aussi
JET_ERR
JET_INSTANCE_INFO
JET_OSSNAPID
JetOSSnapshotAbort
JetOSSnapshotPrepare
JetOSSnapshotPrepareInstance
JetOSSnapshotThaw