Árvore de páginas

Ctree error 518 - 'regid' is already registered

 

Ctree error: Could not initialize c-tree Plus 518 - 'regid' is already registered.


Esta ocorrência é reproduzida no início de uma aplicação AdvPL que utiliza algum recurso do c-tree (Local ou Server). Tecnicamente, esta ocorrência é retornada pelo c-tree para informar que existe um outro processo (Thread) de uma aplicação AdvPL registrada no c-tree. Logo, ele impede que entre em execução uma nova thread com o mesmo número de um processo já registrado.

Esta ocorrência foi reproduzida em binários com build anterior ao build 7.00.051130P, decorrentes de falha de codificação nas rotinas para iniciar a operação com o c-tree. Estas ocorrências já estão corrigidas e a última ocorrência deste tipo com causa determinada está documentada e estará disponível na próxima atualização de binário, em builds superiores a 7.00.051130P.

 

Erro 518 decorrente de GPF / Exception na aplicação Protheus

Existe uma particularidade sobre esta ocorrência: Ela também costuma ocorrer após uma ou mais aplicações AdvPL serem finalizadas ou apresentarem uma ocorrência de erro crítica, por exemplo 'Exception Access Violation' ou 'Segment Fault'.

Uma vez que um determinado processo, que utilizou algum recurso do c-tree, seja finalizado com uma ocorrência de 'Exception Access Violation' ou 'Segment Fault' com falha na exclusão do processo, a próxima aplicação AdvPL (Remote, Job, WorkFlow e etc.), que ocasionalmente utilizar o mesmo número da thread anterior que houve tal ocorrência de erro, não entrará em operação pois ao ser iniciada, receberá erro 518 do c-tree.

Visto desta forma, o c-tree possui uma proteção em sua rotina de registro, proteção que se faz perceber na aplicação, quando na mesma ocorreu um erro grave, inclusive sendo o erro em questão (o que ocasionou o GPF) não relacionado diretamente com o c-tree. Nestes casos, o que deve ser verificado é o que exatamente causou o GPF, pois o erro 518 neste caso trata-se de um efeito 'colateral' de uma outra ocorrência de erro.

 

Uso de c-tree no ERP

Vale lembrar que a partir das versões ERP 7.10 em diante, tanto em ambientes Windows como Unix/Linux, mesmo que a configuração do ambiente (Environment) não especifique o uso direto do c-tree para controle dos SXS ou Banco de Dados, os arquivos de senhas do ERP e Help de Campos (sigapss.spf , sigahlp.hlp...) são criados no disco através da RDD c-tree. Caso não haja um c-tree Server no ambiente, o ERP utiliza-se da DLL do c-tree 'Local', automaticamente, para manipular estes arquivos. Logo, nestes ambientes, também é possível que seja reproduzida a ocorrência Ctree Error 518.

  • Sem rótulos