Manter a integridade transacional com OPLOCKS

Traduções deste artigo Traduções deste artigo
ID do artigo: 224992 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sintomas

Em condições extremas, alguns aplicativos de banco de dados multiusuário que usar um armazenamento de dados comuns através de uma conexão de rede em um servidor de arquivos podem enfrentar problemas de integridade transacional ou corrupção de arquivos de banco de dados e/ou índices armazenados no servidor. Aplica-se geralmente a alguns chamado "ISAM estilo" ou "Registro orientado por" banco de dados multiusuário aplicativos, não para um sistema de cliente/servidor relacional como o SQL Server.

Causa

Se um aplicativo de banco de dados multiusuário ou de único usuário acessa um armazenamento de dados comuns em um servidor de arquivo do Windows NT usando bloqueios oportunistas (ou OPLOCKS), é possível para um determinado usuário para as transações parcial de cache no disco rígido de sistemas cliente. Isso é um aprimoramento de desempenho para o redirecionador de cliente do Windows para reduzir o arquivo E/s de rede entre o cliente e o servidor. Os dados sendo em cache o redirecionador de cliente é posteriormente gravados novamente para o servidor. No entanto, em alguns casos, um sistema cliente pode parar de responder (travar), faça uma reinicialização de disco rígida, perder sua conexão de rede para o servidor ou ter qualquer número de outras dificuldades técnicas. Em tais casos, o conteúdo do cache local que ainda não tem sido criado para o servidor pode ser perdido. Como resultado, a integridade de transação das estruturas de banco de dados no servidor for comprometida e os dados no servidor de arquivos podem se tornar corrompidos.

Resolução

Para contornar esse problema, os desenvolvedores escrever aplicativos de banco de dados que acessar um armazenamento de dados de rede devem liberar buffers de arquivo em qualquer tempo que representa o delineamento de uma transação; por exemplo, após uma operação em massa ou antes para fechar um identificador de arquivo ou sempre que um log de transações é gravado. Isso pode ser feito chamando-se a chamada de API do Win32 FlushFileBuffers.

Propriedades

ID do artigo: 224992 - Última revisão: quarta-feira, 1 de novembro de 2006 - Revisão: 1.1
A informação contida neste artigo aplica-se a:
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Server 4.0 Enterprise Edition
Palavras-chave: 
kbmt kbprb KB224992 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 224992

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com