Partager via


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