ID do artigo: 173006 - Última revisão: sábado, 20 de janeiro de 2007 - Revisão: 3.1

Compartilhamento contagem de bloqueio de conta: "arquivo" Erro durante a sincronização

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Importante: Este artigo contém informações sobre a edição do Registro. Antes de você editar o registro, primeiro você deve fazer uma cópia de backup dos arquivos do Registro (System.dat e User.dat). Ambos são arquivos ocultos na pasta do Windows.

Avançadas: Requer especialista de codificação, interoperabilidade e habilidades de multiusuário.

Nesta página

Expandir tudo | Recolher tudo

Sintomas

Quando você sincroniza duas réplicas, você receberá a seguinte mensagem de erro:
Sincronização entre '<Replica1.mdb>' e '<Replica2.mdb>' falhou.

Contagem de bloqueios de compartilhamento de arquivo excedido (erro 3052).
O erro também pode ocorrer quando você executa um procedimento do Visual Basic for aplicativos que usa o método Synchronize.

Causa

Um membro do conjunto de réplicas contém muitas alterações para a sincronização ser concluída com êxito. Por exemplo, se uma das réplicas aumentou de tamanho por 100 megabytes (MB) porque você adicionou um grande número de novos registros, você poderá receber este erro. A réplica que contém muitas alterações feitas talvez o banco de dados do qual você está tentando sincronizar ou também pode ser outro membro do conjunto de réplicas.

Resolução

Se você estiver usando o Microsoft Access 97, você pode tirar proveito de um novo recurso que permite que você aumentar a configuração MaxLocksPerFile para mecanismo de banco de dados Microsoft Jet 3.5 editando o registro do Windows. O valor padrão dessa configuração é 9500. No entanto, alterar este valor não é recomendado se uma das réplicas estiver localizada em um servidor Novell NetWare porque bloqueios de máximo de registros do servidor por conexão é 10000. Além disso, a alteração desse valor resultará em um desempenho ruim se uma das réplicas está localizada em um servidor executando o Windows NT versão 3.51 ou anterior. Se as duas réplicas estiverem localizadas em servidores que executam o Microsoft Windows NT versão 4.0 ou o Microsoft Windows 95, o valor máximo dessa configuração é limitado apenas pelos recursos disponíveis.

Aviso: As modificações feitas no registro do sistema são consideradas uso avançada dos sistemas operacionais Windows 95 ou Windows NT. Deve ser tomado muito cuidado ao fazer modificações. As entradas inválidas ou incorretas poderá inutilizar o sistema operacional.

Aviso: Usar o Editor do Registro incorretamente pode causar problemas sérios que talvez exijam a reinstalação do Windows 95. A Microsoft não garante que problemas resultantes do uso incorreto do Editor do Registro possam ser resolvidos. Use o Editor do registro por sua própria conta e risco.

Para obter informações sobre como editar o registro, consulte o tópico Alterando chaves e valores ajuda no Editor do Registro (Regedit.exe). Observe que você deve fazer uma cópia de backup dos arquivos do Registro (System.dat e User.dat) antes de editar o registro.
  1. Feche o Microsoft Access.
  2. Clique no botão Iniciar e, em seguida, clique em executar.
  3. Na caixa Abrir, digite regedit .
  4. Localize a pasta de registro HKEY_LOCAL_MACHINE.
  5. Expanda a pasta HKEY_LOCAL_MACHINE até você localizar a pasta SOFTWARE\Microsoft\Jet\3.5\Engines\Jet 3.5.
  6. Clique duas vezes na pasta Jet 3.5 para exibir seu conteúdo.
  7. Selecione a entrada MaxLocksPerFile; no menu Editar, clique em modificar.
  8. Na caixa de diálogo Editar valor DWORD, selecione decimal e aumentar o número na caixa dados do valor.
  9. Clique em OK para salvar a configuração MaxLocksPerFile.
  10. Feche o Editor do Registro.
  11. Inicie o Microsoft Access e sincronize as réplicas.

Situação

A Microsoft confirmou que este é um problema no Microsoft Access 97.

Mais Informações

A configuração MaxLocksPerFile permite que o mecanismo de banco de dados Microsoft Jet concluir transações grandes sem exceder um limite de bloqueio de registro especificado. Em vez de exceder esse limite, o mecanismo de banco de dados Jet divide uma transação em duas ou mais partes; depois que uma parte tenha sido confirmada, o mecanismo de banco de dados Jet libera os bloqueios para que eles podem ser reutilizados. Como resultado, menos bloqueios são necessários para concluir a transação. Isso impede que um servidor Novell NetWare, que limita os bloqueios de registros máximo por conexão com 10000, a partir de falha quando esse valor for excedido.

No entanto, o mecanismo de banco de dados Jet não dividir a transação quando ele sincroniza duas réplicas. Se a transação não pode ser concluída dentro do limite especificado na configuração MaxLocksPerFile, a menos que ele é dividido em partes, você receberá o erro descrito na seção "Sintomas"; a sincronização não ocorre.

Etapas para reproduzir o problema

Aviso: As etapas a seguintes podem exigem backup ao espaço de disco livre de 400 MB. O procedimento de exemplo preenche uma tabela com uma grande quantidade de dados; executá-lo pode levar um longo período de tempo, durante o qual sua CPU seria não está disponível.
  1. Inicie o Microsoft Access e abra um novo banco de dados em branco.
  2. Crie a tabela a seguir:
          Table: tblTable1
          ---------------------------
          Field Name: ID
             Data Type: Number
             Field Size: Long Integer
          Field Name: Field1
             Data Type: Text
             Field Size: 50
          Field Name: Field2
             Date Type: Text
             Field Size: 50
          Field Name: Field3
             Date Type: Text
             Field Size: 50
          Field Name: Field4
             Date Type: Text
             Field Size: 50
    						
  3. Salve a tabela como tblTable1. Quando for perguntado se você deseja criar uma principal chave, clique em não.
  4. No menu Ferramentas, aponte para replicação e clique em Criar réplica. Quando solicitado a fechar o banco de dados, clique em Sim. Quando solicitado para fazer um backup, clique em não.
  5. Na caixa de diálogo local da nova réplica, observe o local e o nome da nova réplica. Clique em OK.
  6. Clique em OK quando solicitado para reabrir o banco de dados, que agora é a estrutura-mestre.
  7. Abra um módulo novo e em branco e digite o seguinte procedimento:
           Function Filler(lngNumRecs As Long)
    
              Dim lngLoopCount As Long
              Dim strFillerString As String
              Dim db As Database
              Dim rs As Recordset
    
              strFillerString = ""
              For lngLoopCount = 1 To 40
                 strFillerString = strFillerString & "x"
              Next lngLoopCount
              Set db = CurrentDb
              Set rs = db.OpenRecordset("tblTable1")
              For lngLoopCount = 1 To lngNumRecs
                 rs.AddNew
                 rs![ID] = lngLoopCount
                 rs![Field1] = strFillerString
                 rs![Field2] = strFillerString
                 rs![Field3] = strFillerString
                 rs![Field4] = strFillerString
                 rs.Update
              Next lngLoopCount
              db.Close
           End Function
    						
  8. Digite a seguinte linha na janela Verificação imediata:

    ? Filler(500000)

    Observe que este procedimento pode levar muito tempo para ser executado e pode exigir quanto 400 MB de espaço livre em disco.
  9. No menu Ferramentas, aponte para replicação e, em seguida, clique em Sincronizar agora.
  10. Na caixa de diálogo Sincronizar banco de dados, clique em OK.
Um indicador de progresso com a mensagem "Sincronizando réplicas" aparece, mas, finalmente, você recebe o erro descrito na seção "Sintomas".

Referências

Para obter mais informações sobre a configuração MaxLocksPerFile, procure no índice da Ajuda por "Método SetOption" e exibir o tópico "SetOption método (DAO)"; role para a parte inferior do tópico e clique em link "Inicializando o mecanismo de banco de dados do Microsoft Jet 3.5".

Para obter mais informações sobre replicação, consulte para o documento do Microsoft Jet 3.5 replicação. Consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft para obter instruções sobre como adquirir o Jet 3.5 replicação white paper:

164553  (http://support.microsoft.com/kb/164553/EN-US/ ) ACC97: Jet 3.5 replicação documento disponível no Centro de download

A informação contida neste artigo aplica-se a:
  • Microsoft Access 97 Standard Edition
Palavras-chave: 
kbmt kbbug kberrmsg KB173006 KbMtpt
Tradução automáticaTraduçã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: 173006  (http://support.microsoft.com/kb/173006/en-us/ )
Retired KB ArticleAviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.