ERRO

A edição versionada da ramificação pode encontrar travamento, bloqueio e impasse quando os dados são armazenados em um geodatabase enterprise no SQL Server

Last Published: July 20, 2021

Descrição

Os aplicativos ArcGISclient podem encontrar comportamentos de travamento, bloqueio e impasse ao editar dados versionados da ramificação que estão armazenados em um geodatabase enterprise no SQL Server. Esses problemas de bloqueio podem levar a erros durante a edição e perda potencial de edições.  

Causa

O bloqueio é uma característica inevitável e intencional de qualquer sistema de gerenciamento do banco de dados relacional (RDBMS) com simultaneidade baseada em bloqueio. No SQL Server, o bloqueio ocorre quando uma sessão mantém um bloqueio em um recurso específico e uma segunda sessão tenta adquirir um tipo de bloqueio conflitante no mesmo recurso. A duração e o contexto de transação de uma consulta determinam por quanto tempo seus bloqueios são mantidos e, portanto, seu impacto em outras consultas.

  • Se a consulta não for executada dentro de uma transação (e nenhuma dica de bloqueio for usada), os bloqueios para instruções SELECT serão mantidos apenas em um recurso no momento em que ele está sendo lido, não durante a consulta. Para as declarações INSERT, UPDATE, and DELETE, os bloqueios são mantidos durante a consulta, tanto para consistência dos dados, quanto para permitir que a consulta seja revertida, se necessário.

  • Para consultas executadas em uma transação, a duração pela qual os bloqueios são mantidos é determinada pelo tipo de consulta, o nível de isolamento da transação e se dicas de bloqueio são usadas na consulta.  

Os aplicativos ArcGIS editarão os dados versionados da ramificação usando transações e com READ COMMITTED SNAPSHOT ISOLATION (RCSI). A arquitetura de controle de versão da ramificação fornece estas duas escolas, nunca editaria a mesma linha em uma determinada tabela, mas ocasionalmente o otimizador do SQL Server pode decidir usar bloqueios de página em vez de bloqueios de linha e até mesmo ocasionalmente escolheria ou escalaria ainda mais para um bloqueio de tabela.

Solução Provisória

Se você estiver encontrando problemas relacionados a bloqueios de página e tabela exclusivos que resultam em bloqueio severo e comportamento de bloqueio ao trabalhar com dados versionados da ramificação no SQL Server, entre em contato com Esri Technical Support fornecendo os detalhes de seu problema de bloqueio e mencione BUG-000138033. Se o comportamento de bloqueio for confirmado, um script poderá ser fornecido para desabilitar bloqueios de página e escalonamento de bloqueio para essas tabelas.

Nota: O potencial para encontrar o erro 1204 de SQL Server aumenta após a implementação desta estratégia de bloqueio. Isso indica que o SQL Server não pode obter um recurso LOCK neste momento, o processamento da declaração atual é interrompido e a transação é revertida. Essa reversão em si também pode bloquear usuários ou pode levar a um longo tempo de recuperação do banco de dados se você reiniciar o serviço do SQL Server.
Nota: ALTER INDEX … REORGANIZE não é suportado para índices com ALLOW_PAGE_LOCKS definido para OFF.
Nota: As classes de feição registradas como versão da ramificação usando ArcGIS Pro 2.8 ou posterior terão esta configuração de bloqueio por padrão, no SQL Server. Se uma classe de feição for registrada como ramificação versionada (ou novos índices adicionados a uma classe versionada da ramificação) usando versões anteriores a 2.8, o script mencionado acima deverá ser executado para configurar este esquema de bloqueio de linha.

ID do Artigo:000025638

Receba notificações e encontre soluções para problemas novos ou comuns

Obtenha respostas resumidas e soluções de vídeo do nosso novo chatbot de IA.

Baixe o Aplicativo de Suporte da Esri

Informações Relacionadas

Descubra mais sobre este tema

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com Suporte Técnico

Baixe o Aplicativo de Suporte da Esri

Ir para as opções de download