TCServer e Terminais de Consulta Gertec
Manual de Diagnóstico e Verificação – TCServer e Terminais de Consulta
Objetivo
Orientar o técnico a diagnosticar e corrigir falhas de comunicação, banco de dados e operação dos terminais de consulta Gertec (TC504, TC506, TC508, Busca Preço G2) conectados ao TCServer, assegurando o funcionamento estável da aplicação e da rede.
1. Descrição do Erro Mais Comum
Sintoma:
Terminais conectam e desconectam repetidamente no log do TCServer.
Linhas de log apresentam:
org.h2.jdbc.JdbcSQLException: The database has been closed [90098-190]A interface gráfica do TCServer abre, mas o banco interno não grava dados de produto.
Terminais exibem a mensagem “NAO REGISTRADO“:
Causa Provável:
Bloqueio de acesso de escrita no diretório de dados interno do TCServer (.tc-server), impedindo o banco H2 de manter conexão ativa.
2. Testes de Diagnóstico
Teste 1 — Verificação de Conectividade de Rede
Objetivo: confirmar que o terminal de consulta comunica-se corretamente com o servidor.
Procedimentos:
No terminal, executar ping para o IP do servidor (ex.:
10.3.20.X → 192.168.1.X).Verificar resposta média de tempo e ausência de perda de pacotes.
Validar portas TCP abertas no servidor:
Porta 6500 → SC501 (serviço principal).
Porta 16510 → SC504 (consultas TCP).
Porta 8080 → Servidor HTTP (interface).
Resultado Esperado:
Todos os pings respondendo.
Portas TCP com status LISTENING.
Sem quedas de conexão.
Teste 2 — Verificação de Execução do Servidor
Objetivo: confirmar se o TCServer está corretamente inicializado e escutando suas portas de serviço.
Procedimentos:
Abrir o arquivo
tcserver.log.Confirmar a presença das linhas:
O servidor SC501 está escutando a porta 6500 O servidor SC504 está escutando a porta 16510 O Servidor HTTP está escutando a porta 8080Verificar se o log registra “Terminal conectado”.
Resultado Esperado:
Mensagens de inicialização conforme acima.
Terminais listados como conectados sem mensagens de desconexão em loop.
Teste 3 — Verificação do Banco Interno (H2)
Objetivo: garantir que o banco de dados embarcado está acessível.
Procedimentos:
Confirmar se a opção Banco Interno está selecionada na aba Produtos do TCServer.
Inserir um novo produto manualmente.
Observar o log após o salvamento.
Verificar se o erro “The database has been closed” ocorre novamente.
Resultado Esperado:
Produto inserido com sucesso.
Nenhum erro de fechamento de banco no log.
Tabela de produtos atualizada automaticamente.
Teste 4 — Validação de Permissões e Escrita
Objetivo: confirmar se o TCServer tem acesso de leitura e escrita aos diretórios.
Procedimentos:
Acessar o caminho
C:\Gertec\TCServerData\.tc-server.Tentar criar manualmente um arquivo de texto.
Verificar se há bloqueio de gravação (ex.: “Acesso negado”).
Confirmar que os atributos de somente leitura estão desabilitados.
Conferir se as permissões NTFS concedem:
Administradores → Controle total
SYSTEM → Controle total
Usuários → Modificar
Resultado Esperado:
Criação de arquivo permitida.
Nenhuma mensagem de acesso negado.
Banco de dados funcional.
Teste 5 — Verificação de Execução Controlada
Objetivo: garantir que o servidor é iniciado corretamente e permanece em segundo plano.
Procedimentos:
Executar o jar com privilégios de administrador.
Confirmar que:
A interface gráfica abre normalmente.
A janela de console permanece minimizada.
O log continua sendo gravado em tempo real.
Resultado Esperado:
Interface do TCServer visível e funcional.
Log atualizado continuamente.
Sem travamentos ou janelas sobrepostas.
Testes Complementares
Teste | Propósito | Resultado Esperado |
|---|---|---|
Ping contínuo (5 min) | Avaliar estabilidade de rede | Nenhuma perda de pacotes |
Monitoramento do log (1h) | Confirmar ausência de desconexões | Apenas mensagens de conexão |
Teste de recarregamento de produtos | Validar atualização do banco | Produtos atualizados e exibidos |
Execução como administrador | Garantir permissões completas | Inicialização bem-sucedida |
4. Confirmação Final do Funcionamento
Quando o sistema está em perfeito funcionamento, o log deve exibir o seguinte padrão:
[INFO][APP] O servidor SC501 está escutando a porta 6500
[INFO][APP] O servidor SC504 está escutando a porta 16510
[INFO][APP] O Servidor HTTP está escutando a porta 8080
[INFO][APP] Terminal conectado: 10.3.20.X (Busca preço)Sem registros de:
[WARNING][APP] Cliente desconectado
org.h2.jdbc.JdbcSQLException: The database has been closed5. Considerações Técnicas (segundo manual oficial)
De acordo com o manual da versão R00.22:
O TCServer é compatível com Java 8 (JRE 1.8).
Suporta três modos de base de dados:
Interno (H2) – embarcado.
Externo (JDBC) – conexão com MySQL, SQL Server, PostgreSQL.
Arquivo texto (UTF-8) – formato
codigo|descricao|preco1|preco2Manual_Usuario_TCServer_R00.22.
A atualização de produtos ocorre automaticamente a cada hora, ou manualmente via opção “Recarregar”Manual_Usuario_TCServer_R00.22.
6. Conclusão
Após a execução dos testes acima, o ambiente estará plenamente funcional se:
Todos os terminais permanecem conectados sem desconexões em loop.
O log
tcserver.logmostra conexões estáveis.O banco interno grava produtos sem erro.
A GUI responde normalmente e exibe os equipamentos conectados.
FAQ – TCServer e Terminais de Consulta
1. Por que os terminais de consulta ficam conectando e desconectando o tempo todo?
Isso ocorre, em geral, porque o banco de dados interno (H2) do TCServer está com acesso bloqueado para gravação.
O servidor não consegue registrar logs nem manter sessão ativa com os terminais, o que faz com que eles reconectem repetidamente.
A solução é corrigir as permissões da pasta .tc-server e garantir que o TCServer esteja sendo executado como Administrador.
2. O que significa o erro “The database has been closed [90098-190]”?
Esse erro indica que o banco interno H2 foi fechado por falta de permissão de escrita.
Ele é comum quando o diretório C:\Gertec\TCServerData\.tc-server está marcado como somente leitura ou pertence a outro usuário do sistema.
Corrigir as permissões NTFS e reiniciar o TCServer resolve o problema.
3. O TCServer abre, mas não carrega a lista de produtos. O que fazer?
Verifique se:
O modo de banco de dados está configurado como Interno (H2) ou o caminho de integração externo está correto.
O log
tcserver.lognão contém mensagens de erro de banco.A pasta
.tc-serverpermite escrita.
Após isso, reinicie o TCServer e teste novamente.
4. Como confirmar que o TCServer está funcionando corretamente?
Abra o arquivo tcserver.log e procure as linhas:
O servidor SC501 está escutando a porta 6500
O servidor SC504 está escutando a porta 16510
O Servidor HTTP está escutando a porta 8080e também:
Terminal conectado: 10.3.20.XEssas mensagens indicam funcionamento pleno.
5. Como saber se há problema de rede entre o terminal e o servidor?
Realize o teste ping do terminal para o IP do servidor e observe:
Tempo médio abaixo de 10 ms.
Nenhuma perda de pacotes.
Também é possível testar as portas 6500, 16510 e 8080 viatelnetou PowerShell (Test-NetConnection).
6. O que fazer se o terminal não aparece como conectado no log?
Confirme se o terminal está no mesmo segmento de rede (exemplo: 10.3.20.x ↔ 192.168.4.x, com gateway correto).
Verifique se a porta 6500 está LISTENING no servidor (
netstat -ano | findstr :6500).Certifique-se de que o firewall permite conexões de entrada nessas portas.
7. Como corrigir o erro “Acesso negado” nos arquivos da pasta .tc-server?
Abra as propriedades da pasta:
Clique com o botão direito → Propriedades → Segurança.
Conceda Controle Total a Administradores e Sistema (SYSTEM).
Marque a opção Herdar permissões para subpastas e arquivos.
Execute o TCServer novamente como administrador.
8. Posso usar outro banco além do interno (H2)?
Sim. O TCServer suporta bancos externos via JDBC (como MySQL, SQL Server, PostgreSQL).
No entanto, para uso em lojas com terminais de consulta, recomenda-se manter o modo Interno (H2) pela simplicidade e rapidez.
9. Como verificar se o firewall está bloqueando o TCServer?
Abra o PowerShell e execute:
Get-WinEvent -LogName "Microsoft-Windows-Windows Firewall With Advanced Security/Firewall" -MaxEvents 50Verifique se há registros de bloqueio ou exclusão de regras relacionadas a Java ou TCServer.
10. Como posso confirmar que as portas estão realmente abertas?
Execute o comando:
netstat -ano | findstr :6500O resultado deve conter:
TCP 0.0.0.0:6500 LISTENINGIsso confirma que o TCServer está ouvindo conexões naquela porta.
11. O que significa “Cliente desconectado” seguido por “Terminal conectado” no log?
Essas mensagens indicam que o terminal perdeu momentaneamente a conexão, mas reconectou com sucesso.
Se o comportamento for contínuo, verifique:
Cabo de rede e switch.
Gateway e máscara do terminal.
Estabilidade do IP do servidor.
12. Como iniciar o TCServer corretamente?
Execute o atalho ou o arquivo JAR:
Sempre com botão direito → Executar como administrador.
Aguarde a abertura da interface gráfica.
Verifique se a janela de console fica em segundo plano e o log é atualizado.
13. O log tcserver.log não aparece. O que devo verificar?
O arquivo é criado automaticamente em:
C:\Gertec\TCServerData\tcserver.logSe não for gerado:
Confirme que a pasta existe e está acessível.
Verifique se há espaço em disco.
Certifique-se de que o TCServer possui permissão de gravação.
14. Como saber que o ambiente está 100% funcional?
O sistema está estável quando:
Todos os terminais aparecem conectados na interface do TCServer.
O log mostra conexões constantes e sem “database closed”.
As portas 6500, 16510 e 8080 estão abertas.
Produtos são consultados normalmente no terminal.