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

Вниз

MIDAS   Найти похожие ветки 

 
TSV ©   (2002-04-03 20:11) [0]

Доброго времени суток, господа!
Вопрос следующего содержания. Обычно при создании сервера приложений главная форма остается пустой. Или приложение "сворачивается" в SysTray. На форме, в принципе, можно отображать информацию о том, какие пользователи в данный момент работают. С этим нет проблем. А вот как, допустим, используя это дело, "вырубить" определенного юзера. Допустим, ссессия зависла и т.д.? Короче говоря, хочется, чтобы сервером приложений можно было как-то управлять, исользуя GUI. У кого какие мысли есть? Заранее благодарен.


 
kd ©   (2002-04-04 10:53) [1]

действительно интересно было бы почитать


 
TSV ©   (2002-04-04 13:14) [2]

Народ, мысли у кого-то есть какие-нибудь?


 
Dok_3D ©   (2002-04-04 13:37) [3]

Что значит, сессия зависла ? Юзер возьмет и сам "вырубится", если уж у него чего зависло.

А технология трехзвенки-то какая ? Сокеты, DCOM, MTS, COM+ ?
Это все настолько разные вещи.

А если очень хочется вырубить сессию, то попробуй через SQL Server Enterprise Manager, тама можно сделать Kill Process.


 
TSV ©   (2002-04-04 15:04) [4]

Технология? Ну, допустим DCOM. Перефразирую вопрос: как можно удалить поток сервера приложений, в котором работает данный пользователь?

А про EM я и сам знаю. Вопрос про MIDAS!


 
Набережных С.   (2002-04-04 20:50) [5]

Насколько мне известно, общего решения нет. Есть общий принцип - надо заставить СОМ - объект, связанный с данным клиентом корректно уничтожиться(если для каждого клиента создается свой объект). Ну а в случае tmApartment обычно достаточно послать потоку объекта WM_QUIT.


 
TSV ©   (2002-04-04 21:07) [6]

А как сопоставить пользователя потоку, в котором он работает? Можно кусочек кода?


 
Набережных С.   (2002-04-04 22:39) [7]

Примерно так:

procedure TRDMSingle2.RemoteDataModuleCreate(Sender: TObject);
begin
if Fac.ThreadingModel = tmSingle then
Form1.AddRDM(Sender,GetCurrentThreadId)
else
PostMessage(Form1.Handle,My_RDMCREATE,integer(Sender),GetCurrentThreadId);
end;

procedure TRDMSingle2.RemoteDataModuleDestroy(Sender: TObject);
begin
if Form1<>nil then
SendMessage(Form1.Handle, MY_RDMDESTROY,integer(Sender),0);
end;

Здесь Fac - фабрика классов.
Соответственно в Form1 в обработчике My_RDMCREATE вызываешь AddRDM, которая добавляет объект в список. А в самом объекте предусматриваешь средства идентификации. Вариант не единственный и зависит от обстоятельств, просто он под рукой. Но смысл, я думаю, понятен.




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

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

Наверх




Память: 0.48 MB
Время: 0.014 c
1-80939
P.
2002-04-11 12:20
2002.04.25
ComboBox


1-80841
AlexP
2002-04-12 19:54
2002.04.25
Ну где взять?


1-80981
vaka
2002-04-12 14:03
2002.04.25
Помогите с мануалами, люди добрые:-)


1-80914
VEG
2002-04-14 19:25
2002.04.25
Загрузка файла в массив типа byte.


1-80874
Alexander K.
2002-04-14 00:05
2002.04.25
Как быстрее всего переделать цветное bmp(24) в монохром(24) ?