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