Tempo aproximado para leitura: 00:05:20 min
Dúvida
O que significa a mensagem 9407 exibida no log do meu agente Appserver?
Ambiente
Framework - Framework (Linha Datasul) – Appserver – Todas as versões
Solução
O erro 9407 pode ser encontrado nos logs do Appserver, sendo apresentado neste formato:
AS -- Connection failure for host 10.80.129.218 port 52682 transport TCP. (9407)
Esta é uma mensagem genérica que indica que o canal de comunicação com o solicitante de uma requisição foi encerrado. Ela pode indicar um problema, desde que relacionada a algum outro erro que esteja ocorrendo nos acessos ao Appserver. Caso o erro 9407 ocorra de forma isolada, a mensagem pode ser desconsiderada. É muito comum esta mensagem ser encontrada nos arquivos de log do Appserver, sendo que raramente ela indique um problema real que careça de investigação.
Esta mensagem pode ter uma série de causas, incluindo:
1 - O solicitante da requisição não está mais disponível:
Se for realizada uma requisição ao Appserver e houver um problema no socket de conexão ao solicitante, o Appserver não conseguirá responder a requisição e exibirá a mensagem 9407 em log, informando o IP e porta para a qual ele não conseguiu comunicar-se.
Esta é a causa mais comum deste erro. Seguindo o fluxo normal de uma requisição TCP/IP, ao ser necessária uma requisição ao Appserver, uma porta é aberta no servidor que faz a requisição. No exemplo da mensagem acima, a mensagem parte do host 10.80.129.218 e porta 52682. Ao receber a requisição, o Appserver realiza o processamento e devolve ao solicitante a informação. Caso esta porta de comunicação não esteja mais aberta, é exibida a mensagem de erro, informando que não foi possível conectar-se ao host e porta informado.
Este caso pode ser considerado um problema? Geralmente não. Imagine que o usuário faça uma solicitação de exibição de um item em uma tela HTML no ERP. Antes da informação ser recebida de volta do Appserver para o Tomcat ou Jboss, o usuário fecha a tela HTML por qualquer motivo. Neste caso, o Appserver recebe a requisição mas não consegue devolver o resultado pois o solicitante não está mais aguardando aquela informação. E neste momento, a mensagem é escrita no log do Appserver. Este é apenas um exemplo, mas que traduz a maioria das ocorrências deste erro em log.
2 - Conflito de portas:
Verifique se o intervalo de portas entre os parâmetros minport e maxport estejam disponíveis no Sistema Operacional do servidor Appserver. Geralmente é utilizada uma porta por agente, sendo importante manter algumas portas a mais disponíveis neste intervalo. Por exemplo, se existirem 10 agentes pode-se deixar um intervalo de 50 portas. Lembrando que cada broker Appserver deverá utilizar um intervalo de portas diferente.
Abaixo um exemplo da configuração dos parâmetros minport e maxport no arquivo ubroker.properties:
srvrMaxPort=40100
srvrMinPort=40000
3 - Problemas de rede:
Se o erro for reproduzível sempre que determinada rotina é executada, pode-se efetuar análises mais aprofundadas através de um monitoramento de pacotes. Para isso, um especialista em redes deverá acompanhar o processo.
Utilize também os níveis de log abaixo para o broker e server quando for necessário efetuar este tipo de análise:
brkrLogEntryTypes=UBroker.Basic,Ubroker.ClientMsgStream, Ubroker.ServerMsgStream,Ubroker.Debug,Ubroker.UBNET
brkrLoggingLevel=4
srvrLogEntryTypes=4GLTrace,UBNET,UBS,UBC,ASPlumbing,DB.Connects
srvrLoggingLevel=4
4 - Configuração de Firewall
Verifique se há algum firewall bloqueando o acesso ao host ou porta informada na mensagem de erro. Todos os firewalls localizados entre o servidor Appserver e o Tomcat ou Jboss deverão ser analisados, visto que cada Sistema Operacional poderá ter um firewall configurado. Neste caso, deve-se verificar se há regras que permitam o retorno das requisições feitas ao Appserver.
Outras possíveis causas deste erro poderão ser encontradas no link disponibilizado ao final deste artigo.
Saiba mais
Se deseja mais informações sobre o erro 9407, recomendamos a leitura do artigo abaixo:
Possible causes for error: Connection failure for host <host_name> port <port> transport TCP. (9407) when using ABL sockets
Glossário
TCP - Transmission Control Protocol
IP - Internet Protocol
HTML - HyperText Markup Language
ERP - Enterprise Resource Planning
ABL - Advanced Business Language
0 Comentários