Fonction JetOSSnapshotFreeze
S’applique à : Windows | Windows Serveurs
Fonction JetOSSnapshotFreeze
La fonction JetOSSnapshotFreeze démarre un instantané. Pendant que l’instantané est en cours, aucune activité d’écriture sur le disque par le 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 d’instantané.
pcInstanceInfo
Nombre d’instances en cours d’exécution dans le moteur qui font partie de la session d’instantané.
paInstanceInfo
Tableau de structures, une pour chaque instance en cours d’exécution qui fait partie de la session d’instantané, décrivant l’instance et les bases de données qui en font partie.
grbit
Options pour cet appel. Ce paramètre est réservé pour 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 ont la valeur NULL, la session d’instantané n’est pas valide ou le paramètre Grbit n’est pas valide. |
JET_errOSSnapshotInvalidSequence |
La session d’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 un instantané peut être exécuté. 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 d’instantané n’est pas valide. |
JET_errOutOfMemory |
La fonction a échoué en raison d’une condition de mémoire insuffisante. |
JET_errOutOfThreads |
La fonction a échoué en raison de l’échec du démarrage d’un nouveau thread qui n’a pas pu démarrer. |
Si cette fonction est établie, aucune e/s d’écriture n’est émise pour les fichiers de base de données ou pour les fichiers journaux qui font partie des instances figées. En outre, les informations de l’instance sont correctement remplies et doivent être libérées ultérieurement en appelant JetFreeBuffer avec le pointeur vers le tableau d’informations d’instance qui a été retourné.
Si cette fonction échoue, le moteur continue de s’exécuter normalement avec les IOs se produisant comme d’habitude. Il n’est pas nécessaire d’appeler JetOSSnapshotThaw si le gel échoue. En outre, les informations de l’instance ne sont pas remplies, il n’est donc pas nécessaire de libérer cette ressource.
Notes
Pendant la période de blocage, aucune e/s d’écriture n’est émise pour les bases de données attachées ou les journaux de transactions, même s’il peut y avoir des e/s d’écriture émises dans les bases de données temporaires ou les fichiers de streaming.
L’État dans lequel se trouvent les bases de données et les fichiers journaux pendant le gel (l’État dans lequel les fichiers se trouvent dans une image d’instantané de volume) est tel qu’une récupération normale sera possible si ces fichiers sont restaurés ultérieurement.
Étant donné qu’il n’y a pas d’opérations d’écriture pendant la période de blocage, les appels d’API normaux dans le moteur peuvent être bloqués pour cet intervalle. L’application cliente doit être en mesure de gérer les appels d’API qui peuvent prendre plus de temps que d’habitude si un blocage se produit.
En raison des effets possibles décrits ci-dessus, il existe un délai d’expiration interne après lequel la session d’instantané arrêtera la phase de blocage, même si les API qui effectuent le dégel ou l’abandon n’étaient pas appelées. La valeur du délai d’attente peut être modifiée à l’aide du paramètre système JET_paramOSSnapshotTimeout . Notez que l’intervalle de blocage classique est compris entre 10 secondes et le délai d’expiration par défaut est d’environ 60 secondes.
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 JetOSSnapshotFreezeW (Unicode) et JetOSSnapshotFreezeA (ANSI). |
Voir aussi
JET_ERR
JET_INSTANCE_INFO
JET_OSSNAPID
JetOSSnapshotAbort
JetOSSnapshotPrepare
JetOSSnapshotPrepareInstance
JetOSSnapshotThaw