GARANTIR DESCONTO

Fórum Componentes Indy - Read TimeOut #267910

09/02/2005

0

Estimados amigos,

Estou desenvolvendo uma aplicação usando o componente TCP/IP da paleta INDY. Gostaria de obter algumas informações ao seguinte respeito:

* Existe algum número limitado de clientes requisitando informações do servidor através de comandos.

Por exemplo: Writeln(´ATUA-12/01/1900´); e recebendo as respostas do servidor Readln;

Antes de executar uma atualização da base de dados eu necessito da verificação da data, geralmente a resposta vem através de uma exceção ReadTimeOut - geralmente dá esse pau e eu não sei mais o que fazer. E o pior é que o Servidor está rodando na mesma máquina usando a porta 40000.

Não era para dar pau, mas esta dando direto.

Alguém poderia dar uma luz, por favor!!!

Agradeço a atenção de todos e obrigado mais uma vez.


Eixox

Eixox

Responder

Posts

09/02/2005

Massuda

Antes de executar uma atualização da base de dados eu necessito da verificação da data, geralmente a resposta vem através de uma exceção ReadTimeOut - geralmente dá esse pau e eu não sei mais o que fazer. E o pior é que o Servidor está rodando na mesma máquina usando a porta 40000.
Parece que seu servidor não conseguiu devolver para o cliente uma resposta dentro do tempo especificado de espera.

Imaginando que essa verificação de data é um processo demorado e envolve consulta ao BD, seria interessante saber qual BD e como você está acessando o BD (BDE/dbExpress/etc).

Um teste que você pode fazer é comentar a verificação no BD e fazer o servidor simplesmente retornar verificação OK ou falhou. Pelo que você explicou, não deveria dar a exceção nesses casos.


Responder

Gostei + 0

10/02/2005

Eixox

As coisas acontecem da seguinte forma:

- Existe um arquivo que eu gero que contém uma lista de dados (um simples arquivo texto - tabulado). Quando o comando ATUA é enviado o sistema verifica o comando e existe uma função que eu fiz que vai dentro de uma pasta chamada Downloads e verifica a data do arquivo e retorna-a em forma de string.

- no procedimento onExecute do IdTcpIpServer a resposta é dada da seguinte forma:

if (ComandoServer = ´ATUA´) then
begin
AThread.Connection.Writeln(DataDoArquivoDown);
AThread.Connection.Disconnect;
end;

eu estava pensando agora - acho que o pau está dando nessa bosta de função dentro do writeln.

Bem, independentemente, o servidor responde e o cliente através de uma função de leitura (Readln) verifica a data e faz a requisição ou não de download se a versão da data do arquivo dele for menor a enviada pelo servidor.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar