Função JetOSSnapshotFreeze
Aplica-se a: Windows | Windows Server
Função JetOSSnapshotFreeze
A função JetOSSnapshotFreeze inicia um instantâneo. Embora o instantâneo esteja em andamento, nenhuma atividade de gravação em disco pelo mecanismo pode ocorrer.
Windows XP:JetOSSnapshotFreeze é introduzido no 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
O identificador da sessão instantâneo.
pcInstanceInfo
O número de instâncias atualmente em execução no mecanismo que fazem parte da sessão instantâneo.
paInstanceInfo
Uma matriz de estruturas, uma para cada instância em execução que faz parte da sessão instantâneo, descrevendo a instância e os bancos de dados que fazem parte dela.
grbit
As opções para essa chamada. Esse parâmetro é reservado para uso futuro e o único valor válido com suporte é 0.
Valor Retornado
Essa função retorna o tipo de dados JET_ERR com um dos seguintes códigos de retorno. Para obter mais informações sobre os possíveis erros de ESE, consulte Erros extensíveis do mecanismo de armazenamento e parâmetros de tratamento de erros.
Código de retorno |
Descrição |
---|---|
JET_errSuccess |
A operação foi concluída com sucesso. |
JET_errInvalidParameter |
Os ponteiros fornecidos para os parâmetros de saída são NULL, a sessão instantâneo é inválida ou o parâmetro grbit é inválido. |
JET_errOSSnapshotInvalidSequence |
A sessão instantâneo não está no estado apropriado para iniciar um congelamento (por exemplo, um congelamento anterior falhou nesta sessão antes). |
JET_errOSSnapshotNotAllowed |
O mecanismo não está em um estado no qual um instantâneo pode ser executado. Um ou mais backups de streaming já estão em andamento ou uma ou mais instâncias estão passando por etapas de recuperação ou encerrando. |
JET_errOSSnapshotInvalidSnapId |
O identificador da sessão instantâneo não é válido. |
JET_errOutOfMemory |
A função falhou devido a uma condição de memória insuficiente. |
JET_errOutOfThreads |
A função falhou porque um novo thread que fazia o congelamento não pôde ser iniciado. |
Se essa função for bem-sucedida, não haverá IOs de gravação emitidos para os arquivos de banco de dados ou para os arquivos de log que fazem parte de instâncias congeladas. Além disso, as informações da instância serão preenchidas corretamente e deverão ser liberadas posteriormente chamando JetFreeBuffer com o ponteiro para a matriz de informações da instância retornada.
Se essa função falhar, o mecanismo continuará em execução normalmente com as E/S ocorrendo normalmente. Não é necessário chamar JetOSSnapshotThaw se o congelamento falhar. Além disso, as informações da instância não serão preenchidas, portanto, não é necessário liberar esse recurso.
Comentários
Durante o período de congelamento, não haverá IOs de gravação emitidos para os bancos de dados anexados ou os logs de transações, embora possa haver E/Ss de gravação emitidas para os bancos de dados temporários ou arquivos de streaming.
O estado em que os bancos de dados e os arquivos de log serão durante o congelamento (o estado em que os arquivos estariam em uma imagem de Instantâneo de Volume) será de modo que uma recuperação normal seja possível se esses arquivos forem restaurados posteriormente.
Como não há operações de gravação durante o período de congelamento, as chamadas normais de API para o mecanismo podem estar paralisadas para esse intervalo. O aplicativo cliente deve ser capaz de lidar com chamadas à API que podem levar mais tempo do que o normal se ocorrer um congelamento.
Devido aos possíveis efeitos descritos acima, há um tempo limite interno após o qual a sessão de instantâneo interromperá a fase de congelamento mesmo que as APIs que fazem o descongelamento ou anulação não tenham sido chamadas. O valor do tempo limite pode ser alterado usando o parâmetro JET_paramOSSnapshotTimeout sistema. Observe que o intervalo de congelamento típico está no intervalo de 10 segundos com o tempo limite padrão em torno de 60 segundos.
Requisitos
Requisito | Valor |
---|---|
Cliente |
Requer o Windows Vista ou o Windows XP. |
Servidor |
Requer o Windows Server 2008 ou o Windows Server 2003. |
Cabeçalho |
Declarado em Esent.h. |
Biblioteca |
Use ESENT.lib. |
DLL |
Requer ESENT.dll. |
Unicode |
Implementado como JetOSSnapshotFreezeW (Unicode) e JetOSSnapshotFreezeA (ANSI). |
Consulte Também
JET_ERR
JET_INSTANCE_INFO
JET_OSSNAPID
JetOSSnapshotAbort
JetOSSnapshotPrepare
JetOSSnapshotPrepareInstance
JetOSSnapshotThaw