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

Вниз

DataSnap сервер (RemoteDateModule) как сервис NT   Найти похожие ветки 

 
BorisUK ©   (2003-04-09 09:28) [0]

Добавил RDM в сервис... вроде все работает но если сервис не запущен, то попытка установить соединен евсеравно удается... экземпляр RDM создается и сервис на секунду стартует, но сразу (на стороне сервера) происходит попытка его (сервис) закрыть и потому имеем сообщение о том что типа "вы правда ходите закрыть СОМ сервер - там есть еще не завещенные конекты... ля ля ля"
Хотелось бы чтоб когда сервис не запущен отказывать в соединении...
Подскажите как это можно сделать?

Пробовал
procedure TMyRDM.RemoteDataModuleCreate(Sender: TObject);
begin
if not SvcStarted then Exception.Create("Service not Started");
end;

procedure TMySvc.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
SvcStarted :=false;
end;

procedure TMySvc.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
SvcStarted :=true;
end;

Это не работает... как бы клиенту ошибку в виде сообщения об отказе в коннекте послать???


 
BorisUK ©   (2003-04-09 15:32) [1]

Эээх...
Спрошу по другому.
Как запертить создавать экземпляр RDM, входящего в состав сервиса... если этот сервис не запущен???
Задача не ординарна - помогите решить силой коллективной мысли плз :)


 
sniknik ©   (2003-04-09 16:10) [2]

хотя и не понимаю зачем такая связка нужна, и с трехзвенкой только недавно столкнулся (просто пробы делал)
но, варианты

TDataSetProvider создавать в рантайме после получения подтверждения что сервис работает. (на клиенте будут отказы не правильный провайдернэйм)

описать метод (вызывать с клиента перед подключением) где возвращать статус сервиса. и там решать работать не работать.

в обоих случаях экземпляр RDM создастся и количество коннектов будет расти но работать клиент не сможет.

и третий вариант закрыть все до попытки создать RDM (ну на самом деле тут не уверен, до это или после ), но закрытие сервера из главной формы ->
procedure TForm1.FormShow(Sender: TObject);
begin
if not EnableRun then Close;
end;
у меня никаких вопросов не задает, а подключение клиента завершается ошибкой. (судя по всему тебе это и надо, но требует привязки к твоей структуре программы (не уверен что у тебя чтото показывается, сервис все же))



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
3-91150
me2
2003-04-08 14:52
2003.04.28
Две трансакции


14-91453
Piero
2003-04-11 19:19
2003.04.28
Дополнительная математика в Delphi


3-91211
supersan
2003-04-09 08:37
2003.04.28
Правильное соединение с БД Interbase?


9-91137
seemann
2002-10-06 19:05
2003.04.28
Непослушный спрайт


8-91412
Mihey
2002-11-23 00:10
2003.04.28
Проблемы с DelphiX