[firebase-br] OFF: Tempo de espera por resposta do servidor ao tentar conectar.

Gianclaudio Oliveira gianclaudiooliveira em yahoo.com.br
Sex Jun 9 05:30:16 -03 2006


Esse lance do thread eu não entendi muito bem. Mas a questão do ping  era uma idéia que eu havia pensado e tentaria levar pra frente se não  encontrasse outra saída. Agora que sei que outro companheiro já a  utilizou, fico tranquilo de que dará certo.
  O tráfego na rede com os pings não chega a ser problema. Até porque não  preciso ficar tentando conectar o tempo todo. E mesmo que tentasse, a  rede estaria sendo usada quase exclusivamente pra isso e o volume de  dados de um ping é muito pequeno (que eu saiba).
  Creio que o meio problema esteja resolvido :-))
  
  Muito obrigado mesmo, do fundo do coração. Vocês são maravilhosos!!
  
  Grande abraço

Daniel / Tecnobyte <temp em tecnobyte.com.br> escreveu:  As funções abaixo usam Indy e faço algo parecido com isto que você está
precisando. Sempre dou ping no servidor e na porta do FB antes de tentar a
conexão de fato com o banco.

function ExPing(const Host: string; const TimeOut: Integer): Boolean;
var
  ICMPClient: TIdICMPClient;
begin
  Result := false;
  ICMPClient := TIdICMPClient.Create(nil);
  try
    try
      ICMPClient.Host := Host;
      ICMPClient.ReceiveTimeout := TimeOut;
      ICMPClient.Ping;
      Result := ICMPClient.ReplyStatus.ReplyStatusType = rsEcho;
    except
    end;
  finally
    ICMPClient.Free;
  end;
end;

function ExPingPort(const Host: string; const Port, TimeOut: Integer):
Boolean;
var
  TCPClient: TIdTCPClient;
begin
  TCPClient := TIdTCPClient.Create(nil);
  try
    try
      TCPClient.Host := Host;
      TCPClient.Port := Port;
      TCPClient.ConnectTimeout := TimeOut;
      TCPClient.Connect;
      Result := TCPClient.Connected;
    except
      Result := false;
    end;
  finally
    TCPClient.Free;
  end;
end;


Atenciosamente.

Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br


----- Original Message -----
From: "Pedro" 
To: "FireBase" 

Sent: Thursday, June 08, 2006 5:47 PM
Subject: Re: [firebase-br] OFF: Tempo de espera por resposta do servidor
aotentar conectar.


> Sugiro que vc trabalhe utilizando thread. Ela ficaria tentando conectar ao
> banco "em paralelo" com o restante da execução de sua aplicação.  Se o
> servidor estar offline significa estar desligado, em vez de ficar tentando
> conectar ao banco vc poderia ficar tentando dar ping nele, que tem
resposta
> mais rápida. Resposta positiva, aí sim vc conecta ao banco. O outro lado é
> que sua aplicação ficaria gerando tráfego na rede, que ainda assim seria
> menor, mas este seria o preço a pagar.
>
> At,
> Pedro.
>
> Em 08/06/06, Gianclaudio Oliveira 
> escreveu:
> >
> > Caros companheiros, estou tendo um probleminha meio off que talvez algum
> > de vocês possa me ajudar.
> >   Utilizo o Delphi. Estou usando os componentes MDO (Mercury)
> > para  acessar o Firebird. Acontece que, por necessidade do cliente, o
> > sistema  tem que tentar fazer conexão com o servidor e, se não
conseguir, aí
> > ele  conecta a um banco local.
> >   Caso tenha começado trabalhando no banco local (Off-line), de tempos
> > em  tempos ele deve tentar fazer a conexão com o servidor. Toda a
> > tentativa  de conexão com o servidor acontece sem a interação do
usuário. Ou
> > seja,  ele (o usuário) nem sabe se está trabalhando on-line ou off-line.
> > Isso  é a necessidade do meu cliente.
> >   Até aí tudo bem. O programa está pronto e funcionando corretamente.
> >   O problema é que em toda a tentativa de conexão, se o servidor
> > não  estiver disponível (por qualquer motivo que seja), o sistema fica
> > um  tempão travado esperando a resposta do servidor, pra só depois dar
> > o  erro de conexão. Dependendo do sistema operacional e das condições
> > da  rede, esse tempo chega a 1:30min. Isso é uma eternidade nas mãos
> > dos  usuários, que chegam a pensar que o sistema está lento ou travado.
> >   Colocar algo na interface do sistema avisando sobre a tentativa
> > de  conexão com o servidor não resolve, pois os usuários precisam
> > de  agilidade no sistema.
> >   Eu precisava diminuir o tempo de espera pela resposta do servidor.
> > De  repente, algo que me dê a escolha do tempo. Provavelmente vou usar
> > um  tempo bem curto como 1 segundo ou coisa do gênero.
> >
> >   Desde já, obrigado pela ajuda.
> >   Gianclaudio Oliveira
> >
> > __________________________________________________
> > Fale com seus amigos  de graça com o novo Yahoo! Messenger
> > http://br.messenger.yahoo.com/
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para editar sua configuração na lista, use o endereço
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


 __________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 


Mais detalhes sobre a lista de discussão lista