Árvore de páginas

Melhoria - Novas proteções do Advpl


 

Situação

Utilização de programas AdvPL que armazenam e referenciam blocos de código.

Ocorrência

Caso um determinado bloco de código, durante sua existência, fosse atribuído mais de 32767 vezes a outras variáveis ou elementos de array, a execução da aplicação era encerrada com a ocorrência de erro fatal "assert failed on codeblock.cpp", precedida por uma ocorrência "Reference counter overflow ( over 32700 ) on tLocalEnv::IncRefs()". Após reproduzida tal ocorrência, o servidor de aplicação tornava-se instável, e poderia apresentar Access Violation seguido de queda do serviço.

Melhoria

Uma ocorrência desta natureza não pode derrubar o servidor, e deve gerar uma mensagem de erro que aponte com maior clareza a natureza da ocorrência. Foi realizada uma proteção no Application Server, para que a aplicação Advpl seja encerrada com a ocorrência de erro "Reference counter overflow ( over 32600 ) on CodeBlock assignment" caso este limite seja atingido, e não provoque Access Violation no Protheus Server após a finalização do processo.

Informações adicionais

  • Não há chamado relacionado.
  • Referente à ocorrência TEC-5791.
  • Disponível a partir da Build 7.00.131227A.
  • Esta proteção é uma extensão - complemento das proteções implementadas a partir da Build 7.00.090818P, documentadas em Melhoria - Proteções e limites do AdvPL

  • Sem rótulos