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

Вниз

Как сделать счетчик сессий 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
8-65552
JohnJ
2003-06-10 09:51
2003.10.20
Ремикс


1-65533
FreeSky
2003-10-08 10:06
2003.10.20
Использование шрифтов...


1-65522
nester
2003-10-07 22:21
2003.10.20
Как уникально идентифицировать компьютер?


3-65318
RDen
2003-09-30 10:55
2003.10.20
SQL


1-65460
Gawk
2003-10-09 11:14
2003.10.20
Как вести в TEdit только цифры