Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.07.2009, 11:25
Saint Garry Saint Garry вне форума
Прохожий
 
Регистрация: 12.04.2009
Сообщения: 18
Репутация: 10
По умолчанию Замена исполняемого файла (COM) во время его работы

Программа представляет собой сервер приложений (COM обьект) и обрабатывает запросы пользователей, в то же время может возникнуть необходимость заменить ее на новую с измененными функциями не дожидаясь отключения юзера (он может продолжать работать). При новом обращении должен запускаться обновленный екземпляр сервера.
Ответить с цитированием
  #2  
Старый 24.07.2009, 16:00
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Вообще-то, если счетчик ссылок не обнулен, то "стандартными" средствами не получится, наверное.
Даже если это (в общем случае) out of process сервер, то восстановить "связывание" ... очень и очень сомнительно.
Ответить с цитированием
  #3  
Старый 24.07.2009, 16:14
Saint Garry Saint Garry вне форума
Прохожий
 
Регистрация: 12.04.2009
Сообщения: 18
Репутация: 10
По умолчанию

Спасибо,
проблема уже решена самозаменой сервера при отключении пользователя по условию существования новой версии, с помощью запуска BATфайла извне, как предложено здесь http://pblog.ru/?p=561
Ответить с цитированием
  #4  
Старый 25.07.2009, 13:46
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Кстати. Пришла мысль в голову.

Уж коль реальное решение отличается от первоначального :

"... заменить ее на новую с измененными функциями не дожидаясь отключения юзера ..."

И если сервер и клиент (в контексте OLE Automation) формируются одним разработчиком.

То может быть можно было бы как-то (используя механизм нотификационных сообщений) - инициировать процесс автозакрытия всех "клиентов" с сохранением текущего состояния клиента.

А затем, после замены модуля на новую версию, запуск клиентов с восстановлением сохраненного состояния ...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:43.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter