Responder 
 
Avaliação do Tópico:
  • 0 Votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Tempo de resposta quando tira o cabo de rede
24/09/2007, 10:48
Resposta: #1
Tempo de resposta quando tira o cabo de rede
Ola pessoal,

Sou novo no forum, e estou fazendo um programa em java para frente de caixa de supermercado. O sistema esta funcionando e as vezes no cliente a rede desconecta, provavelmente problema físico. Quando acontece isso o sistema trava, pois faço conexão com o oracle. Pesquisando no google, o que acontece é que o linux tem um timeout de resposta, qdo acontece alguma coisa do tipo tirar o cabo de rede, ele fica esperando que o cabo seja reconectado para continuar o processamento.

Existe alguma forma de alterar esse comportamento, ou seja, quando ocorrer alguma coisa com a rede ele imediatamente responde ao sistema que a rede foi desconectada e o sistema gere uma exceção?

Vi muito sobre o comando em C/C++ setsockopt que deveria configurar o SO_RCVTIMEO, que é o parametro de timeout de recepção do linux, no entando é somente leitura, ou seja, não posso alterar o valor do mesmo.


QQ dica agradeço

André Bohn
Programador
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
01/10/2007, 01:37
Resposta: #2
 
Olá bohnzinho, me parece que a solução para o seu problema é a instalação do pacote ifplugd:
# apt-get install ifplugd

"Na caixa dizia: Requer MS Windows ou superior, então eu instalei Debian/GNU
Linux!"

.
Antes de postar use a busca e veja o Wiki.
Busca do FD
Wiki do FD
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
03/10/2007, 08:02
Resposta: #3
 
Dmatrix,

Obrigado por responder, fiz um teste com o ifplugd, e ao tirar o cabo de rede o sistema ainda trava. Eu acho que o ifplugd não finaliza os sockets abertos, sendo assim o sistema fica aguardando que a conexão fisica seja reestabelecida. Pela documentação do socket o tempo de espera é infinito (so_sndtimeo = infinite), estou vendo se tem como alterar este parametro no linux, mas é complicado. Muito obrigado pela dica e se tiver mais alguma ideia eu agradeço.


André

André Bohn
Programador
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
03/10/2007, 10:11
Resposta: #4
 
Dmatrix,

Achei uma solução alterando os arquivos de memória localizados em /proc/sys/net/ipv4.

fiz os seguintes comandos:

echo 1 > /proc/sys/net/ipv4/tcp_retries1
echo 1 > /proc/sys/net/ipv4/tcp_retries2


Não sei se é a solução mais "bonita", mas enfim....



obrigado

André Bohn
Programador
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
Responder 


Ir ao Fórum:


Usuários visualizando este tópico: 1 Visitantes

Entre em Contato | Fórum Debian | Voltar ao Topo | Voltar ao Conteúdo | Modo Leve (Arquivo) | Feeds RSS