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