Servidor DataSnap

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

Respostas

24/01/2006

Aroldo Zanela

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.


Responder Citar

24/01/2006

Aroldo Zanela

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.


Responder Citar

24/01/2006

Thomaz_prg

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.


Responder Citar