|
SetLibraryList
|
|||
---|---|---|---|
#18+
PB 6.5.1 Кто сталкивался с таким поведением SetLibraryList? 1. Сохраняю текущий LibraryList приложения 2. Динамически с использованием SetLibraryList подключаю к своему приложению временную библиотеку. 3. ... 4. Далее возвращаю предыдущий LibraryList на место, опять же с использованием SetLibraryList 5. Пытаюсь удалить временную библиотеку, но файл с ней все еще занят текущим приложением и удалить его невозможно. Файл остается занятым вплоть до самого завершения приложения... Как заставить приложение отпустить ненужный файл? Есть у кого мысли или кто-нить сталкивался с таким поведением? === Гришин Дмитрий ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2004, 18:38 |
|
SetLibraryList
|
|||
---|---|---|---|
#18+
Никак. Как только Class Loader или Datawindow Engine сходил в твою временную PBL/PBD-ку, усё... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2004, 18:45 |
|
SetLibraryList
|
|||
---|---|---|---|
#18+
Жаль... нужно будет реализовывать сборщик мусора... === Гришин Дмитрий ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2004, 10:21 |
|
SetLibraryList
|
|||
---|---|---|---|
#18+
так ты расскажи, зачем это все нужно, и возможно найдется способ как это сделать. в частности - зачем удалять файл? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2004, 13:53 |
|
SetLibraryList
|
|||
---|---|---|---|
#18+
Anatoly Moskovskyтак ты расскажи, зачем это все нужно, и возможно найдется способ как это сделать. Если в кратце: есть приложение на сервере - оно небольшое и запускается очень часто - по запросам пользователей... чем больше пользователей тем чаще приложение дергается... хоть приложение и работает непродолжительное время, но в связи с тем, что оно выполняется очень часто, файлы библиотек постоянно заняты и их невозможно поменять в процессе функционирования системы. Замена библиотек в процессе работы необходима, поэтому принято решение при запуске приложения копировать библиотерку во временный файл и уже его подключать к приложению в рантайме... таким образом получается для каждой сессии свой набор библиотек... по завершению работы приложения с объектами временной библиотеки, файл библиотеки становится больше не нужным, и его нужно удалить... хотелось это делать из самого приложения, что бы оно само и убирало за собой... PS 2 Anatoly Moskovsky у тебя кстати, получилось, Anatoly Moskovskyчтобы запущенная в параллели программа дождалась завершения вызывающей.? === Гришин Дмитрий ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2004, 16:52 |
|
SetLibraryList
|
|||
---|---|---|---|
#18+
авторЗамена библиотек в процессе работы необходима Зачем? Что находится там, код или dataobjects? Что значит приложение на сервере , EAServer, distributed PB, MTS + PB com objects, или какой-то домострой? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2004, 19:07 |
|
SetLibraryList
|
|||
---|---|---|---|
#18+
авторЗамена библиотек в процессе работы необходима, поэтому принято решение при запуске приложения копировать библиотерку во временный файл и уже его подключать к приложению в рантайме... таким образом получается для каждой сессии свой набор библиотек... по завершению работы приложения с объектами временной библиотеки, файл библиотеки становится больше не нужным, и его нужно удалить... хотелось это делать из самого приложения, что бы оно само и убирало за собой... Что то как то мудрено все получается. Неужели так часто изменяются библиотеки, что их нужно проверять при каждом запуске программы ? Кто например мешает сделать обычный INI-шник, в котором держать список подключаемых библиотек ? Программа при загрузке считывает этот список, по нему производит подключение библиотек именованных как "<НомерВерсии>_<Библиотека>.PBL". Тогда чтобы выложить изменения достаточно просто увеличить номер версии, положить библиотечки рядом со старыми и изменить INI-файл. Текущие сессии так и будут продолжать работать до отключения со старыми библиотеками, все новые сессии уже начнут подключаться к обновленным. Раз у Вас сессии работают недолго, то думаю буквально через небольшое время старые библиотеки будут освобождены и готовы у удалению. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2004, 19:32 |
|
SetLibraryList
|
|||
---|---|---|---|
#18+
dGrichine по завершению работы приложения с объектами временной библиотеки, файл библиотеки становится больше не нужным, и его нужно удалить... А зачем удалять? Пусть при запуске проверяется версия на сетевом диске и локальная, и копируется только новая. dGrichine у тебя кстати, получилось, "чтобы запущенная в параллели программа дождалась завершения вызывающей"? пока еще нет застопорился на использовании WaitForSingleObject, и пока не было времени разбираться. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2004, 00:23 |
|
SetLibraryList
|
|||
---|---|---|---|
#18+
Анатолий, а что там стопориться, пойди сюда: http://eric.aling.tripod.com/PB/tips/pbtip32.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2004, 01:55 |
|
SetLibraryList
|
|||
---|---|---|---|
#18+
ФилиппЗачем? Что находится там, код или dataobjects? Что значит приложение на сервере , EAServer, distributed PB, MTS + PB com objects, или какой-то домострой? по большому счету там находятся конечно dataobjects и их можно было бы создавать динамически используя например: lds.Create(LibraryExport(...),ls_error), но в таком случае не знаю как быть с composite DW и глобальными функциями определенныи в этой библиотеке и участвующими в computed object expressions... иного решения как подключить динамически саму библиотеку не вижу... может, конечно, плохо смотрю... "на сервере" - имелось ввиду не на локальной машине клиента. с точки зрения PB это конечно домострой - это может быть и оракловый сервер приложений и аксаптовский, а может быть и distributed PB... не важно... главное, что задача на сервере каким-то образом стартует по запросам пользователя... to ASCRUS да, согласен, что изменение имени билиотеки тоже выход, тем более что когда приложение стартует ей на вход подается инишник в котором прописан в том числе и список библиотек... единственное нужно будет посмотреть что будет дешевле: следить за соответсвием изменений версии библиотек и ini файлов или один раз реализовать механизм уборки мусора... === Гришин Дмитрий ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2004, 11:26 |
|
|
start [/forum/topic.php?fid=15&msg=32545955&tid=1339109]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 257ms |
total: | 496ms |
0 / 0 |