Автоматическое обновление внешних модулей¶
Для автоматического обновления внешних (клиентских) исполняемых модулей, таких как Cash.exe и других можно использовать продукт Updater.
Updater состоит из серверной и клиентской части. Серверная часть работает в виде сервиса («службы») в операционной системе. Имя сервиса обновлений Updater. Данный продукт устанавливается и в дальнейшем поддерживается в каталоге, где установлена Cache, как правило, по адресу: C:\CacheSys\etc\Updater\
Updater может работать как самостоятельный продукт, поэтому будем рассматривать его работу только в применении к Cache. Возможна установка и обновление Updater непосредственно из Cache, для этого Cache необходимы соответствующие права.
Для обновления любых произвольных файлов в Updater используется клиентская часть. Описание работы клиентской части не входит в рамки данной инструкции. Поддержка работы с сервисом обновлений встроена в следующие модули:
- Cash.exe не ниже версии 1.0.2.62
Таким образом, для их обновления не следует использовать клиентскую часть Updater.
Обновление внешних исполняемых модулей попадают в Cache в виде .upd-файлов, как правило, в составе очередной версии. Восстановление обновлений из базы Cache происходит при её старте:
-
Cache по сетевому протоколу UDP посылает команду «службе» Updater, в которой сообщает контрольную сумму пришедшего исполняемого файла.
-
Встроенная в Cash.exe клиентская часть Updater, взаимодействуя со «службой» Updater по тому же протоколу UDP, сравнивает свою контрольную сумму, и, если она различается, запрашивает новый файл с сервера.
-
Таким образом, на всех клиентских компьютерах автоматически появляется новый исполнимый файл Cash.exe (старый будет переименован, но не стёрт). Причём новый файл будет находиться на диске, а вот работать (то есть в памяти) будет всё ещё старый исполняемый файл. Для того чтобы заработал обновлённый модуль Cash.exe, следует на каждом клиентском компьютере вручную остановить исполнение Cash.exe, а затем снова запустить его в работу (таким образом из памяти будет удалена старая версия программы, а в работу запустится уже новая).
Примечания
- Если сервис («служба») Updater по каким-то причинам не может работать, программу Cash.exe нужно вручную скопировать на клиентские компьютеры из каталога
C:\CacheSys\etc\Updater\Files\
на сервере. На каждом клиентском компьютере нужно остановить работу Cash.exe, заменить исполняемый файл новым, а затем снова запустить его в работу. - Sender.exe обновляется другим механизмом – так как он всегда находится на сервере, Cache сама его останавливает, подменяет файл и снова запускает его в работу.
- Если имеются ошибки по установке обновлений или инициализации внешних модулей, то сообщения об этом выводятся при каждом входе в программу только для пользователей с правами администратора, по аналогии с выводом сообщений при проверке системных настроек. Для пользователей, не имеющих прав администратора, сообщения выводятся только один раз - при первом входе.
Внимание
Так как первоначальная установка файлов Cash.exe выполняется пользователем с правами администратора, а автоматическое обновление этих файлов выполняется при работе на компьютере пользователя с другими правами, для успешного автоматического обновления файлов, нужно установить права доступа к каталогам, в которых лежат соответствующие файлы. Делается это следующим образом:
-
Пользователь с правами администратора на компьютере вызывает Свойства каталога (директории) – через контекстное меню по правой клавише мыши в проводнике Windows.
-
В Свойствах нужно перейти на вкладку Безопасность.
-
Выбрать идентификатор пользователя, который должен будет работать с программой (или идентификатор группы пользователей, или Все).
-
Установить для выбранного пользователя (группы или Всех) Полный доступ к каталогу:
-
Нажать кнопку OK.
Дополнительно
Кроме обновления внешних вспомогательных программ, иногда выполняется обновление системных библиотек программы «М-АПТЕКА плюс» (таких, как EscLib.dll и некоторых других).
Эти внутренние компоненты системы обязательно должны устанавливаться на компьютере-сервере Cache от имени пользователя с правами администратора. Поскольку в штатной ситуации Cache работает с правами именно такого пользователя (см. Дополнительная настройка Cache), то обычно не возникает каких-либо проблем с правами доступа к файловой системе сервера.
Однако после выполнения обновления внутренних компонентов системы на сервере, эти изменения должны распространиться и на клиентские компьютеры.
Чаще всего пользователи программы «М-АПТЕКА плюс» не имеют прав администратора на своих клиентских компьютерах. Это может привести к ошибкам запуска клиентской части после того, как будет обновлена серверная часть.
Примечание
В сообщении об ошибках при такой ситуации будет указано, что причину можно увидеть в протоколе Системные ошибки программы (см. Просмотр протоколов работы).
Если такая ситуация возникла, следует один раз запустить клиентскую часть программы «М-АПТЕКА плюс» от имени пользователя с правами администратора этого клиентского компьютера. Клиентская часть системы будет обновлена, и в дальнейшем можно будет запускать её от имени пользователя, не имеющего администраторских прав.