Dúvida, como saber se o sistema perdeu conexão com servidor

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Dúvida, como saber se o sistema perdeu conexão com servidor

Mensagem por porter »

Olá pessoal,

Gostaria de saber, se tem como verificar se em algum momento, a estação, perde a conexão com um servidor dedicado, tem acontecido da estação congelar e dar a mensagem

de Não Está Respondendo, em seguida demora um pouco e acessa normalmente, durante um tempo acessa rapidamente com normalidade, depois volta a acontecer

novamente, estou abrindo os arquivos com o Tbrowse, o congelamento na estação, acontece de tempos em tempos, hora acessa de forma rápida e normal, hora congela, e

demora para abrir o arquivo pelo Tbrowse.

Harbour 3.2.0dev (r1702081836)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Dúvida, como saber se o sistema perdeu conexão com servidor

Mensagem por Itamar M. Lins Jr. »

Olá!
Use o ping e monitore: ping meuservidor -t -4
Veja se tem "delay" nas respostas do ping.

Código: Selecionar todos

>ping servidor -t -4

Disparando servidor [192.168.1.154] com 32 bytes de dados:
Resposta de 192.168.1.154: bytes=32 tempo=1ms TTL=128
Resposta de 192.168.1.154: bytes=32 tempo=3ms TTL=128
Resposta de 192.168.1.154: bytes=32 tempo=2ms TTL=128
Resposta de 192.168.1.154: bytes=32 tempo=2ms TTL=128

Estatísticas do Ping para 192.168.1.154:
    Pacotes: Enviados = 4, Recebidos = 4, Perdidos = 0 (0% de
             perda),
Aproximar um número redondo de vezes em milissegundos:
    Mínimo = 1ms, Máximo = 3ms, Média = 2ms
Se for WIFI pode acontecer com mais frequência a queda.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Dúvida, como saber se o sistema perdeu conexão com servidor

Mensagem por JoséQuintas »

porter escreveu: tem acontecido da estação congelar e dar a mensagem
de Não Está Respondendo, em seguida demora um pouco e acessa normalmente
Isso daí é uma mensagem relativamente normal, quando o programa está trabalhando em alguma coisa, e nem responde ao windows.
Pode ser loop infinito do programador, que não colocou tempo de espera nos intervalos do loop.
Se não tem outro jeito, tente colocar mensagens nas operações pra tentar identificar em que parte isso acontece.

As possibilidades são infinitas.

Muitas podem ser por erro do programador.
Outras por antivírus.
Outras por problema na rede.

No caso de erro do programador, nem sempre pode ser na rotina em questão.

Um erro tradicional é loop infinito, tomando tempo da CPU, sem deixar tempo para o Windows.
No Clipper precisava OL_Yield() ou algo equivalente, mas no Harbour o Inkey() faz esse trabalho.
Isso pode afetar a máquina e a rede.
Por exemplo:

Código: Selecionar todos

DO WHILE ! RLock()
ENDDO
Imagine o servidor respondendo pra estação milhões de vezes por segundo se o registro está bloqueado.
Todas as outras estações podem travar, de tanto que o servidor fica ocupado com aquela estação.

Mas é tentar identificar aonde o troço tá pegando mesmo.
Talvez mensagens intermediárias, até resolver o problema.
Ao travar, a mensagem do que estava fazendo também vai ficar na tela.

Código: Selecionar todos

Mensagem( "Abrindo arquivo" )
use arquivo
Mensagem( "Abrindo índice" )
SET INDEX TO arquivo
Mensagem( "Posicionando" )
SEEK "X"
Mensagem( "browse" )
Muitos registros excluídos, set filter, etc, REDE, wifi falhando demais - wifi por si só já é péssimo pra dbf.

Lembrando que as conexões se fecham após 15 minutos fora de uso, por exemplo deixar o browse parado e voltar depois, o servidor desconecta o terminal.

Como eu disse, pode ser qualquer coisa, é VOCÊ investigar, e não ficarmos mostrando todas as possibilidades pra dizer se é ou não.
Apenas mostrei algumas possibilidades como ilustração de que tudo é possível.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Dúvida, como saber se o sistema perdeu conexão com servidor

Mensagem por JoséQuintas »

Faltou sobre o título do post:

Pra testar se o servidor sumiu, talvez algum teste parecido com ping.
Talvez as funções hb_inet()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Dúvida, como saber se o sistema perdeu conexão com servidor

Mensagem por porter »

Fiz os testes nas estações com ping, e realmente está havendo um dalay nas respostas do ping, um determinado tempo fica normal em 1 ms mas está ocilando para cima, creio que quando essa ocilação sobe, seja o momento em que o sistema está congelando nas estações, aguarda um momento, e volta ao normal e consegue trabalhar com o sistema durante um tempo, a qualquer momento voltando a congelar novamente.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Dúvida, como saber se o sistema perdeu conexão com servidor

Mensagem por Itamar M. Lins Jr. »

Olá!
Pois é, assim que faço.
Não informou se é WIFI, mas a troca do HUB vai resolver.(se for isso)
Pode ser a placa de rede da estação/servidor, ou mau contato no RJ45.
Mostre seus testes para o pessoal da assistência técnica e eles irão resolver...
Já achou o problema.
Pode uma placa fica variando 10MB para 100MB e 1000MB etc... no HUB.
O HUB se perde em quem está 10, 100, 1000... a placa de rede fica ligando desligando... Peguei esse BO aqui. Solução foi comprar uma placa de rede nova e isolar a onboard.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
pauloa1
Usuário Nível 3
Usuário Nível 3
Mensagens: 227
Registrado em: 25 Jun 2008 14:57
Localização: Augusto Pestana-RS

Dúvida, como saber se o sistema perdeu conexão com servidor

Mensagem por pauloa1 »

Eu coloquei essa função no errorsys.prg

Código: Selecionar todos

STATIC FUNCTION DefError( oError )
   LOCAL cMessage
   LOCAL cDOSError
   LOCAL n
	local cConect:=.t.
   Local cLogFile := "ERR0_"+DTOS(DATE())+".log"  //+StrTran( TIME(), ":", "_")+".log"
   cLogFile :=left(cLogFile,11)

  ** caso a conexão cair
  IF ConectionOK()=.F.     // VEREFICA SE ESTA ATIVA A CONEXÃO

     Msgstop("Caiu a conexão com o Banco de Dados","Conexão")
     cConect:=.f.

endif

********************
Function ConectionOK()
********************
Local oSql,cSql,aret :={}
cSql   := "select version()"
oSql   := SR_GetConnection()        // Obtem o objeto da conexão ativa
oSql:exec(cSql,.F.,.t.,@aret)
if len(aRet) == 0
   Return(.F.)
else
   Return(.T.)
endif
Return(.F.)
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Dúvida, como saber se o sistema perdeu conexão com servidor

Mensagem por porter »

Olá pessoal,
Estou fazendo por esses dias, os testes com ping nas estações, e uma delas apresentou esse resultado:

Estatistica do ping
Mínimo = 0ms, Máximo = 487ms, Média = 60ms

O servidor é dedicado, nesse servidor o ownCloud monitora a pasta do sistema,
o arquivo DBF, com maior quantidade de registros, tem 1.473.421 registros, o segundo maior, tem 539.110 registros, o técnico
está fazendo os testes com outra switch, no sistema, também coloquei mensagens intermediárias para abertura de arquivo, mensagem no set index e mensagem no browse, conforme o problema for desenrolando, posto aqui a solução.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Dúvida, como saber se o sistema perdeu conexão com servidor

Mensagem por Itamar M. Lins Jr. »

Olá!
Sim, mas como é sua rede ?
Tá usando como ?
TS ? pasta compartilhada ?
Pasta compartilhada é pedir para ter problema.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Dúvida, como saber se o sistema perdeu conexão com servidor

Mensagem por porter »

Olá pessoal,
O problema foi corrigido na rede, agora que o delay do ping está baixo, o sistema não está mais congelando.
Responder