Servidor DataSnap

Delphi

24/01/2006

olá pessoal...
Eu estou utilizando MIDAS / DataSnap e estou tendo um pequeniníssimo problema.
eu quero saber se tem alguma forma de saber, pelo servidor, se determinado cliente está desconectato.
Pelo Destroy do TRemoteDataModule, só se sabe que houve uma desconexão se o cliente desconectou-se normalmente.
Se faltar energia no cliente este evento não ocorre. Além de não ser possível identificar quem se desconectou.

se alguem puder me ajudar...
agradecido


Miudo

Miudo

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

24/01/2006

Colega,

Use uma rotina de ´ping´ para servir de ´cão de guarda´ e avisar o servidor que uma estação não responde. Tem isso pronto na Web, mas se não encontrar, informe que eu te passo o código.


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

24/01/2006

Colega,

Use uma rotina de ´ping´ para servir de ´cão de guarda´ e avisar o servidor que uma estação não responde. Tem isso pronto na Web, mas se não encontrar, informe que eu te passo o código.


GOSTEI 0
Thomaz_prg

Thomaz_prg

24/01/2006

Se você não tiver problemas com o banco de dados (limite de conexões e outros), você pode deixar seu servidor como Single Instance, desta forma, se o cliente cair, o servidor é tirado da memória, pois para cada cliente, é criada uma instância do servidor.
Ou então usar socket para que, se o cliente (ClientSocket) cair, ele finaliza a transação.
Ou então, se o componente que você estiver usando para tratar as transações (IbTransaction, MdoTransaction) tiver o controle do tempo que a transação está aberta, você pode definir um tempo (na propriedade IdleTimer, que é definida em Milissegundos) para que, se der esse tempo, a transação seja finalizada.
Ou também, se você usa pooling de objetos, pode definir um tempo para que sejam destruídos.


GOSTEI 0
POSTAR