Árvore de páginas

Situação

A utilização da configuração DBAccess - Seção [General], chave CheckDeadLock faz o DBAccess gerar uma mensagem com detalhes das conexões envolvidas em um DEADLOCK, quando detectado. Essa mensagem mencionava apenas a tabela e o registro que a conexão atual tentava bloquear, e não as demais tabelas e registros envolvidos. 

Melhoria

A partir da build atual, caso seja encontrada uma referencia circular nos impedimentos de dois ou mais processos, que gere um DEADLOCK, a mensagem gerada pelo DBACcess vai conter mais informações sobre as tabelas e registros envolvidos, vide exemplo abaixo:

#DEADLOCK|DEADLOCK FOUND BETWEEN PROCESSES (18116) [juliow_|JOB 27120 (127.0.0.1:12010) Slave: 127.0.0.1:7911,18116] [TABLE ENVP12127MSSQL|RDDTEST RECORD 96] AND (26736) [juliow_|JOB 29752 (127.0.0.1:12010) Slave: 127.0.0.1:7910,26736] [TABLE ENVP12127MSSQL|RDDTEST RECORD 40]

O exemplo acima é interpretado da seguinte forma : (processo) [detalhes] [tabela / registro] está sendo impedido por (processo) [detalhes] [tabela/registro] . O primeiro processo ( 18116 ) está tentando obter o lock do registro 96 da tabela RDDTEST), mas está sendo impedido pelo proximo processo (26736), que está tentando pegar o bloqueio do registro 40 da mesma tabela.... podem haver mais processos envolvidos, e o último processo está sendo impedido pelo primeiro.


Informações adicionais
  • Referente a issue: TPGW-887
  • Sem rótulos