Servidor DataSnap
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
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
Curtidas 0
Respostas
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.
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
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.
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
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.
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