Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
1-80849
MystiX
2002-04-12 21:38
2002.04.25
Hooks


3-80790
Artem2
2002-04-05 07:59
2002.04.25
DBLookUpComboBox и свои значения


1-80898
Candyras
2002-04-15 00:15
2002.04.25
Вот такая проблемка...


14-81063
vopros
2002-03-19 15:20
2002.04.25
Кто как отдыхает после тяжелой нашей работы?


4-81118
SerVS - S
2002-01-29 14:13
2002.04.25
Как используя API выключить ActiveDesktop





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский