Quando o Protheus perde a conexão com o banco de dados, o sistema exibe mensagens de erro que podem ser confusas. Entender o significado dos códigos negativos do TOPCONN e DBAccess é crucial para diagnosticar o problema rapidamente e evitar reinícios desnecessários do serviço.
Erros comuns do TOPCONN e DBAccess
A comunicação entre o Protheus e o banco de dados é gerenciada por componentes como o TOPCONN e o DBAccess. Falhas nessa comunicação geram códigos de erro específicos que indicam a causa raiz do problema.
Códigos de erro e o que investigar
- TOPCONN - Create error: -15 : FILE_IN_USE: Este erro ocorre ao tentar criar uma tabela com a RDD TOPCONN quando a tabela já existe e está em uso por outro usuário. Verifique a lógica AdvPL para criação de tabelas. Implemente seções críticas (Critical Section) para garantir que apenas uma thread crie a tabela por vez, verificando sua existência antes da criação.
- TOPCONN - Create error: -19 : COMMAND_FAILED: Indica falha na criação de uma nova tabela via TOPCONN. As causas comuns incluem falta de espaço no servidor de banco de dados ou uma estrutura de tabela inconsistente/não suportada. Consulte o log do DBAccess para detalhes. Exemplos incluem campos com tamanho excessivo ou falta de espaço no disco.
- TopConnect error (Insert): -27: Ocorre ao tentar inserir registros em uma tabela com um campo de usuário com propriedade IDENTITY (auto-numeração) usando a RDD TOPCONN. Não utilize modos de compatibilidade AdvPL (DBUserArea) para acessar tabelas SQL com IDENTITY. Use queries e instruções SQL diretas via
TCSQLExec(). - TC_FilterEx - NO CONNECTION: Sinaliza que a thread AdvPL perdeu a conexão com o DBAccess durante a chamada da instrução
TC_FilterEx. Para análise detalhada, abra um ticket de suporte. O log do console do Servidor de Aplicação pode conter informações adicionais. - DBUseArea - DB driver not initialized: Um erro fatal AdvPL que ocorre ao tentar abrir uma tabela. Isso acontece quando a RDD (Remote Database Driver) não foi inicializada corretamente. Verifique o log do console do Servidor de Aplicação. Pode ocorrer com a RDD TOPCONN se nenhuma conexão com o DBAccess foi estabelecida (via
TCLink()) ou se não há conexão ativa no processo atual. - TC_ALTER FAILED on file... Table DATA or STRUCTURE should be INVALID or CORRUPTED: Ocorre durante a alteração da estrutura de uma tabela se uma etapa intermediária falhar devido a estrutura incompleta ou dados corrompidos. Verifique os logs do DBAccess. Restrições causadas por views, triggers, statistics ou outros recursos que impedem a operação são causas comuns. É fundamental que a tabela não possua dependências externas que impeçam a alteração estrutural. Triggers e statistics inseridos diretamente no SGBD podem precisar ser removidos e reaplicados manualmente.
Exemplo de log de erro (TC_ALTER FAILED)
04/01/2016 12:52:20 : [BEGINLOG]
Error : 5074 (37000) (RC=-1) - [Microsoft][ODBC SQL Server Driver][SQL Server]The statistics 'CTB_FILORI' is dependent on column 'CTB_FILORI'. ( From tMSSQLConnectionAlterTable_1 )
...
04/01/2016 12:52:20 : [BEGINLOG]
TC_ALTER FAILED on file [CTB010]. Table DATA or STRUCTURE should be INVALID or CORRUPTED. ( From tDBServer::AlterFile )
...
Armadilhas
- A perda de conexão com o DBAccess (
TC_FilterEx - NO CONNECTION,DBUseArea - DB driver not initialized) pode indicar problemas na rede, no servidor de banco de dados ou na configuração do DBAccess. - Erros de criação de tabela (-15, -19) frequentemente apontam para problemas de permissão, espaço em disco ou inconsistências na definição da tabela.
- Tabelas com recursos avançados do banco de dados (IDENTITY, triggers, statistics) podem exigir abordagens de acesso e manipulação específicas, diferentes do padrão AdvPL.
Fontes oficiais
- TOPCONN - Create error -15 FILE_IN_USE - TOTVSTEC
- TOPCONN - Create error -19 COMMAND_FAILED - TOTVSTEC
- TopConnect error Insert -27 - TOTVSTEC
- TC_FilterEx - NO CONNECTION - TOTVSTEC
- DBUseArea - DB driver not initialized - TOTVSTEC
- TC_ALTER FAILED on file... Table DATA or STRUCTURE should be INVALID or CORRUPTED - TOTVSTEC
Paginas publicadas pela TOTVS na Developer Network.
Comentarios 0