Voce esta enfrentando erros no Ctree como 'regid' ja registrado, interferencia multiusuario, falha na criacao de indice incremental ou offsets de campo inconsistentes? Estes problemas geralmente ocorrem em ambientes Protheus com varios AppServers acessando os mesmos dados.
Ctree Error 518 - 'regid' is already registered
Este erro indica que um processo AdvPL ja esta registrado no c-tree com um determinado numero de thread. O c-tree impede a execucao de uma nova thread com o mesmo numero para evitar conflitos. Isso pode acontecer apos aplicacoes AdvPL finalizarem de forma abrupta (GPF, Exception Access Violation, Segment Fault), pois o registro da thread pode nao ter sido removido corretamente. Nesses casos, o erro 518 e um efeito colateral de um erro mais grave que ocorreu anteriormente.
Ctree Error 160 - Multi-user interference
Este erro ocorre em ambientes multiusuario quando uma aplicacao cria um indice temporario com filtro e outra aplicacao altera um registro que impacta a chave desse indice. Diferente do DBF/ADS, o c-tree considera isso uma interferencia e aborta a navegacao no indice temporario. Isso pode acontecer se a mesma aplicacao fecha um indice, altera dados que afetam sua chave e o reabre.
A partir da build 7.00.060909a, o comportamento do c-tree Server foi modificado para se assemelhar ao ADS, abortando apenas em caso de exclusao fisica de registro. O c-tree Local continua apresentando este comportamento.
Ctree Error 468 - Index Create - Incremental Index
Este erro acontece ao tentar criar um indice (permanente ou temporario) para uma tabela c-tree quando o c-tree Server esta em uso e uma transacao (BEGIN ... END TRANSACTION) esta ativa. O c-tree Server nao permite criacao de indices com transacoes abertas. A solucao e criar os indices antes de iniciar a transacao.
Ctree - Index Error - problem with field's offsets
O erro de offsets de campo ocorre quando ha incompatibilidade entre a versao do Servidor de Aplicacao e o formato do arquivo c-tree. Isso pode acontecer se voce abre um arquivo c-tree gerado por uma versao mais recente com um servidor mais antigo, ou vice-versa. Transferencias via FTP em modo ASCII tambem podem corromper o arquivo e causar este erro.
Ctree Error 598 - IO Error 0 - Could not evaluate
Este erro indica que o c-tree (Local ou Server) nao conseguiu realizar um movimento de ponteiro em um registro devido a uma falha na resolucao de uma funcao de filtro AdvPL pela RDD. Geralmente, esta associado a falha no carregamento da engine de callback, usada pelo c-tree para resolver expressoes AdvPL.
Exemplo de configuracao
A resolucao destes erros geralmente envolve a correcao de rotinas AdvPL ou a verificacao da compatibilidade das versoes do Servidor de Aplicacao e dos arquivos de dados. A rotina RDDC019 e mencionada em relacao ao erro 468.
Armadilhas
- O erro 518 pode ser um sintoma de um problema mais grave na aplicacao AdvPL. Investigue a causa raiz da Exception ou GPF.
- O erro 160 em c-tree Local pode ser mais dificil de contornar do que em c-tree Server.
- Certifique-se de que os indices sejam criados antes das transacoes, especialmente em ambientes com c-tree Server.
- Evite transferir arquivos c-tree via FTP em modo ASCII. Use modo Binario.
- Verifique a compatibilidade das versoes do Servidor de Aplicacao com os arquivos de dados c-tree.
Fontes oficiais
- Ctree error 518 - 'regid' is already registered - TOTVSTEC
- Ctree Error 160 - Multi-user interference - TOTVSTEC
- Ctree Error 468 - Index Create - Incremental Index - TOTVSTEC
- Ctree - Index Error - problem with field's offsets - TOTVSTEC
- Ctree Error 598 - IO Error 0 - Could not evaluate - TOTVSTEC
Paginas publicadas pela TOTVS na Developer Network.
Comentarios 0