Función JetOSSnapshotFreeze

Se aplica a: Windows | Windows Server

Función JetOSSnapshotFreeze

La función JetOSSnapshotFreeze inicia una instantánea. Aunque la instantánea está en curso, el motor no puede realizar ninguna actividad de escritura en disco.

Windows XP:JetOSSnapshotFreeze se introduce en 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
    );

Parámetros

snapId

Identificador de la sesión de instantánea.

pcInstanceInfo

Número de instancias que se ejecutan actualmente en el motor que forman parte de la sesión de instantáneas.

paInstanceInfo

Matriz de estructuras, una para cada instancia en ejecución que forma parte de la sesión de instantáneas, que describe la instancia y las bases de datos que forman parte de ella.

grbit

Las opciones de esta llamada. Este parámetro está reservado para uso futuro y el único valor válido admitido es 0.

Valor devuelto

Esta función devuelve el JET_ERR tipo de datos con uno de los siguientes códigos de retorno. Para obtener más información sobre los posibles errores de ESE, vea Extensible Storage Engine Errors and Error Handling Parameters.

Código devuelto

Descripción

JET_errSuccess

La operación se ha completado correctamente.

JET_errInvalidParameter

Los punteros proporcionados para los parámetros de salida son NULL, la sesión de instantánea no es válida o el parámetro grbit no es válido.

JET_errOSSnapshotInvalidSequence

La sesión de instantáneas no está en el estado adecuado para iniciar una inmovilización (por ejemplo, se produjo un error de inmovilización anterior en esta sesión).

JET_errOSSnapshotNotAllowed

El motor no está en un estado en el que se puede realizar una instantánea. Una o varias copias de seguridad de streaming ya están en curso o una o varias instancias están pasando por los pasos de recuperación o la finalización.

JET_errOSSnapshotInvalidSnapId

El identificador de la sesión de instantáneas no es válido.

JET_errOutOfMemory

Error en la función debido a una condición de memoria insuficiente.

JET_errOutOfThreads

Error en la función porque no se pudo iniciar un subproceso que realiza la inmovilización.

Si esta función se ejecuta correctamente, no habrá ninguna E/S de escritura emitida para los archivos de base de datos o para los archivos de registro que forman parte de instancias que están inmovilizadas. Además, la información de la instancia se rellenará correctamente y se debe liberar más adelante llamando a JetFreeBuffer con el puntero a la matriz de información de instancia que se devolvió.

Si se produce un error en esta función, el motor seguirá ejecutándose normalmente con las E/S que se producen como de costumbre. No es necesario llamar a JetOSSnapshotThaw si se produce un error en la inmovilización. Además, la información de la instancia no se rellenará, por lo que no es necesario liberar este recurso.

Comentarios

Durante el período de inmovilización, no habrá ninguna E/S de escritura emitida a las bases de datos adjuntas o a los registros de transacciones, aunque es posible que haya E/S de escritura emitidas en las bases de datos temporales o archivos de streaming.

El estado en el que las bases de datos y los archivos de registro estarán durante la inmovilización (el estado en el que los archivos estarían en una imagen de instantánea de volumen) será tal que una recuperación normal será posible si esos archivos se restauran más adelante.

Dado que no hay operaciones de escritura durante el período de inmovilización, es posible que las llamadas API normales al motor se detengan durante ese intervalo. La aplicación cliente debe ser capaz de controlar las llamadas API que podrían tardar más tiempo y normales si se produce una inmovilización.

Debido a los posibles efectos descritos anteriormente, hay un tiempo de espera interno después del cual la sesión de instantánea detendrá la fase de inmovilización incluso si no se llamó a las API que realizan la descongelación o anulación. El valor del tiempo de espera se puede cambiar mediante el parámetro del sistema JET_paramOSSnapshotTimeout . Tenga en cuenta que el intervalo de inmovilización típico está en el intervalo de 10 segundos con el tiempo de espera predeterminado en algún lugar alrededor de 60 segundos.

Requisitos

Requisito Value

Cliente

Requiere Windows Vista o Windows XP.

Servidor

Requiere Windows Server 2008 o Windows Server 2003.

Encabezado

Declarado en Esent.h.

Library

Use ESENT.lib.

Archivo DLL

Requiere ESENT.dll.

Unicode

Se implementa como JetOSSnapshotFreezeW (Unicode) y JetOSSnapshotFreezeA (ANSI).

Consulte también

JET_ERR
JET_INSTANCE_INFO
JET_OSSNAPID
JetOSSnapshotAbort
JetOSSnapshotPrepare
JetOSSnapshotPrepareInstance
JetOSSnapshotThaw