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

Вниз

Как сделать счетчик сессий ActiveX объекта?   Найти похожие ветки 

 
Aleksandr   (2003-10-08 16:03) [0]

У меня библиотека ActiveX и, соответственно, объект. При первом запуске он должен в глобальный implementation-объект загрузить данные из таблицы, призакрытии последнего экземпляра - выгрузить. Как это отфиксировать? Я попытался сделать там же в implementation целую константу-переменную, при инициализации объекта она проверяется и увеличивается, при уничтожении - уменьшается. Если равна 0 при инициализации, то грузятся данные, если 0 при уничтожении, то освобождаются. После этого провел тест - запустил одну программу как exe, а вторую - из Делфи. Но при трассировке вторая тоже грузит данные, и счетчик у нее тоже =0. Как это сделать правильно, раз такой вариант не работает?


 
Aleksandr   (2003-10-08 16:49) [1]

Да, забыл добавить - модель объекта - Single Instance, Free.


 
Юрий Федоров   (2003-10-08 16:50) [2]

Через ActiveX - никак, разные адресные пространства в разных программах


 
Aleksandr   (2003-10-08 17:10) [3]

Вот тебе и раз :(. А чего тут Кэнту тогда распинается о счетчиках в ActiveX? Правда, у него тоже все как-то смутно по этому поводу, ощущение, что он сам не проверяет, о чем ишет...


 
Aleksandr   (2003-10-08 17:11) [4]

А может, в скрипте php пространство будет одним?


 
Юрий Федоров   (2003-10-08 17:17) [5]

>>А чего тут Кэнту тогда распинается о счетчиках в ActiveX?
Так это для одного процесса
>>А может, в скрипте php пространство будет одним?
не в курсе, может быть...


 
nikkie   (2003-10-08 17:37) [6]

>Через ActiveX - никак, разные адресные пространства в разных программах

хочется спросить - а что Вы имеете в виду под ActiveX? кажется с Вашим сотрудником мы это уже обсуждали :). чисто чистоты терминологии ради - обычно это называют in-proc сервер.

>Aleksandr

а ты уверен, что тебе важно, чтобы при создании объекта в разных процессах инициализация происходила только раз? как объект использовать-то собираешься?


 
Юрий Федоров   (2003-10-08 17:42) [7]

>>nikkie © (08.10.03 17:37) [6]
может тут и есть какая-то путаница в терминологии, но если это библиотека(см [1]), то по любому это in-proc сервер


 
nikkie   (2003-10-08 18:16) [8]

это безусловно библиотека, а вот что за объект - гадать надо. Automation Object? COM Object? COM+ Event Object? Transactional Object?

нет, я-то согласен, что это in-proc сервер. только для ясности надо вещи своими именами называть. в COM-терминах микрософт и без нас такого наворотила... :)

я правильно догадываюсь, что предполагается использовать объект в php-скрипте, работающем на сервере? про php конкретно сказать не могу, но очевидно, что будут ли два запроса обрабатываться в двух потоках в одном процессе или в двух разных процессах зависит от сервера. а может и от его настроек. кроме того, как мне помнится, perl к apache можно было подключить как CGI (то есть для обработки каждого запроса стартовался новый процесс) или с помощью perl_mod. как подключается php я не знаю.


 
Aleksandr   (2003-10-08 18:23) [9]

2 nikkie:

Суть в том, что мне действительно важно, чтобы данные из таблиц грузились в массив только один раз. В этом весь смысл библиотеки - разгрузить непомерно занятый SQL-server. А функция этого объекта с математическими операциями, работающими с данными этих массивов, вызывалась из нескольких процессов.


 
nikkie   (2003-10-08 18:52) [10]

если в массив - то сам понимаешь, эта область данных будет принадлежать одному конкретному процессу.

можно, конечно, попробовать local server вместо in-proc.

или выбрать какой-то из вариатнов interprocess communication - например, memory mapped files. или написать свой промежуточный сервер и обращаться к нему через sockets.

вопрос еще в том, как часто надо загружать/обновлять данные с сервера. может можно написать программку, которая будет раз в день выгружать данные в текстовый/бинарный файл/desktop db/другой sql server? и пусть твой объект читает данные оттуда, куда их выгрузили.



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

Форум: "Основная";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
14-65622
Step[B.M.]
2003-09-28 23:21
2003.10.20
Ужасно интересная задача о которой вряд-ли кто слышал :)


1-65438
Aleksandr
2003-10-07 16:24
2003.10.20
Как трассировать DLL?


8-65557
Mr.ElectroNick
2003-06-14 10:19
2003.10.20
Изменение размера компоненты (от TImage) в RunTime


1-65529
bers
2003-10-08 09:56
2003.10.20
Событие OnMouseOver


1-65526
chadnov
2003-10-08 08:07
2003.10.20
Как программно разархивировать ZIP?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский