Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Reforçar configuração adequada para modo distribuído.

...

ValorDescrição
1Habilita a finalização automática de uma conexão envolvida em um deadlock
0 (default)Não  Não habllita a finalização automática de uma conexão envolvida em um deadlock 

...

  • Bloqueio de registros para alteração -- dbrlock() , msrlock(), reclock() – dentro de um bloco transacionado em AdvPL 
  • O mecanismo de identificação de deadlock funciona para todos os SGDBs suportados pelo DBAccess.  
  • A partir do DBAccess Build 20191119, o valor default desta configuração passa a ser 1 ( habilitada ).
  • A partir do DBaccess Build 20200606, o valor default desta configuração voltou a ser 0 ( desabilitada ).


Informações
  • Funcionalidade disponível a partir do DBAccess 20181212 Build 18.2.1.0
  • Quando utilizado um 
    Inclusão de trecho
    dbaccess
    dbaccess
    nopaneltrue
     em em modo distribuído, esta configuração deve ser inserida dos SLAVES do nos serviços secundários (ou Slaves) do
    Inclusão de trecho
    dbaccess
    dbaccess
    nopaneltrue
    , e a configuração CheckDeadLock=1 deve estar em uso no 
    Inclusão de trecho
    dbaccess
    dbaccess
    nopaneltrue
    Primário. 
  • A detecção de deadlock no DBAccess funciona avaliando as conexões que não conseguiram o bloqueio de um registro por um determinado tempo, considerando a cadeia de impedimento entre processos. Se a lista de impedimentos for circular, a conexão que identificou a ocorrência de deadlock é finalizada, para dar a chance das demais serem finalizadas. 
  • Não é necessário reiniciar o serviço do DBAccess para tornar esta configuração ativa – porém apenas as novas conexões estabelecidas com o DBAccess consideram o valor atualizado – as conexões já existentes não mudam o seu comportamento.  
  • O DBAccess não corrige um deadlock. O objetivo deste mecanismo é evitar que um deadlock mantenha processos em loop infinito segurando recursos do sistema e impedindo um processamento, além de gerar uma informação de diagnóstico no DBAccess, listando os processos envolvidos no deadlock. Uma vez reproduzida uma ocorrência dessa natureza, as aplicações envolvidas devem ser analisadas e uma ação pode ser necessária na aplicação para evitar o deadlock. 
  • Para configurar o mecanismo de deteção de deadlock, veja a documentação DBAccess - Seção [General], chave CheckDeadLock