Главная страница
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.016 c
1-65520
Relaxxx
2003-10-08 12:55
2003.10.20
Количество часов между часами(извиняюсь за тафтологию)


14-65586
Молодой
2003-10-02 17:08
2003.10.20
Программа генерации голоса


1-65457
Sandman25
2003-10-07 13:32
2003.10.20
Уничтожение кнопки в OnClick


1-65551
TGrigory
2003-10-07 21:13
2003.10.20
TListView - как добавлять новые пункты?


3-65313
Элина
2003-09-29 17:45
2003.10.20
Труба!!