Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.04.15;
Скачать: CL | DM;

Вниз

Уничтожение RDM   Найти похожие ветки 

 
Alexander_K   (2010-12-08 12:19) [0]

Всем добрый день!

У меня есть трехзвенное MIDAS приложение. Клиент подключается к серверу приложений, в котором соответсвтенно имеется Remote Data Module (в конечном итоге все это работает через COM). RDM создается как Instancing: ciMultiInstance , а Threading model: tmSingle. То есть на каждого клиента создается отдельный поток.
Обычно, при нормальном завершении клиентской части программы, серверная часть завершается нормально, но вот когда пропадает сетевое соединение (возможны наверное еще случаи) клиент теряет связь с серверной частью, и после завершения клиента серверная часть уже не закрывается сама.
В связи с этим хочу сделать механизм, по которому сервер бы определял: живой ли клиент или нет.
Как это сделать наверное не важно (можно например по таймеру раз в несколько минут выполнять какой-нибудь метод на сервере, по которому сервер будет и определять жив клиент или нет).
Но вот потом встает вопрос:
Сервер определил, что клиент не откликается какое-то время, и нужно закрываться.
Так вот вопрос: как корректно завершиться серверному потоку самому из себя?


 
Сергей М. ©   (2010-12-08 20:08) [1]

Exit;


 
_Юрий   (2010-12-09 00:29) [2]

Надо ковырять код фабрики, которая создает и разрушает ремоут-дата-модули, и смотреть как это можно сделать по моему, модуль называется ComSrv, сейчас нет под рукой исходников.
Завтра тоже гляну, у меня точно такая же проблема.
По поводу определения живости клиента думаю сделать так: на вызове каждого метода запоминать время, и параллельно пустить поток который будет отслеживать, нет ли простаивающих более какой то величины.


 
Alexander_K   (2010-12-09 11:01) [3]

Похоже нашел:

CoDisconnectObject(Self, 0);



Страницы: 1 вся ветка

Текущий архив: 2012.04.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.009 c
15-1323808202
Юрий
2011-12-14 00:30
2012.04.15
С днем рождения ! 14 декабря 2011 среда


15-1323694886
Artem
2011-12-12 17:01
2012.04.15
Какое основное отличие Serial от Ethernet a?


15-1322937752
Андрей Билан
2011-12-03 22:42
2012.04.15
Перевод проекта с Delphi 5 на Delphi XE


2-1324669937
Drowsy
2011-12-23 23:52
2012.04.15
FireBird 2.5, IBExpert. Ver. 2011.03.04


1-1291799940
Alexander_K
2010-12-08 12:19
2012.04.15
Уничтожение RDM