Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

Versão 1 Atual »

Correção - Ocorrência de Assert Exception com DBAccess e AuditTrail

Esta build contém proteções e alterações para tratar adequadamente uma situação de chamada de execução direta de statement (TCSQLEXEC) que causava mal-funcionamento da engine de auditoria (Audit Trail) e ocorrências repetidas de ASSERT EXCEPTION no DBAccess usado como destino dos dados auditados pelo Audit Trail. 

Abrangência ERP 10 e 11
Situação

Utilização do DBAccess com o DBAudit Trail, configurando explicitamente a auditoria de execução de statements direta no banco de dados (TCSQLEXEC).

Ocorrência

Se e somente se, uma aplicação AdvPL executasse uma instrução TCSQLEXEC(), informando como parâmetro uma string vazia (""), o DBAccess enviava a string vazia para o processo de Auditoria, que reenviava uma instrução de atualização de campo BLOB com tamanho 0 (inválido), derrubando a thread/conexão de gravação de dados de auditoria, gerando ocorrência de ASSERT EXCEPTION no log do DBAccess usado pelo Audit Trail.  

Correções

Foram colocados nos códigos do DBAccess e do AuditTrail as seguintes proteções : 

  • Caso uma aplicação AdvPL envie para o DBAccess uma instrução TCSQLEXEC("") com string vazia, o DBACcess registrará uma ocorrência de advertência "[WARNING] Empty statement received Nothing to do.", e não enviará esta instrução para o log de auditoria.
  • Caso o DBAccess receba de uma aplicação client, a instrução de registro de campo BLOB com tamanho 0 (zero), será registrado no log de console apenas uma advertência, sem derrubar o processo com uma ocorrência de "Assert Exception".
Informações adicionais
  • Correção referente ao chamado TDGSRK.
  • O efeito final perceptível ao Administrador do ambiente era que o Audit Trail entrava em "loop", estabelecendo conexão com o DBAccess, e não era capaz de descarregar mais nenhum registro auditado.

  • Sem rótulos