Перейти к содержанию

Автоматическое обновление внешних модулей

Для автоматического обновления внешних (клиентских) исполняемых модулей, таких как 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 происходит при её старте:

  1. Cache по сетевому протоколу UDP посылает команду «службе» Updater, в которой сообщает контрольную сумму пришедшего исполняемого файла.

  2. Встроенная в Cash.exe клиентская часть Updater, взаимодействуя со «службой» Updater по тому же протоколу UDP, сравнивает свою контрольную сумму, и, если она различается, запрашивает новый файл с сервера.

  3. Таким образом, на всех клиентских компьютерах автоматически появляется новый исполнимый файл Cash.exe (старый будет переименован, но не стёрт). Причём новый файл будет находиться на диске, а вот работать (то есть в памяти) будет всё ещё старый исполняемый файл. Для того чтобы заработал обновлённый модуль Cash.exe, следует на каждом клиентском компьютере вручную остановить исполнение Cash.exe, а затем снова запустить его в работу (таким образом из памяти будет удалена старая версия программы, а в работу запустится уже новая).

Примечания

  1. Если сервис («служба») Updater по каким-то причинам не может работать, программу Cash.exe нужно вручную скопировать на клиентские компьютеры из каталога C:\CacheSys\etc\Updater\Files\ на сервере. На каждом клиентском компьютере нужно остановить работу Cash.exe, заменить исполняемый файл новым, а затем снова запустить его в работу.
  2. Sender.exe обновляется другим механизмом – так как он всегда находится на сервере, Cache сама его останавливает, подменяет файл и снова запускает его в работу.
  3. Если имеются ошибки по установке обновлений или инициализации внешних модулей, то сообщения об этом выводятся при каждом входе в программу только для пользователей с правами администратора, по аналогии с выводом сообщений при проверке системных настроек. Для пользователей, не имеющих прав администратора, сообщения выводятся только один раз - при первом входе.

Внимание

Так как первоначальная установка файлов Cash.exe выполняется пользователем с правами администратора, а автоматическое обновление этих файлов выполняется при работе на компьютере пользователя с другими правами, для успешного автоматического обновления файлов, нужно установить права доступа к каталогам, в которых лежат соответствующие файлы. Делается это следующим образом:

  1. Пользователь с правами администратора на компьютере вызывает Свойства каталога (директории) – через контекстное меню по правой клавише мыши в проводнике Windows.

  2. В Свойствах нужно перейти на вкладку Безопасность.

  3. Выбрать идентификатор пользователя, который должен будет работать с программой (или идентификатор группы пользователей, или Все).

  4. Установить для выбранного пользователя (группы или Всех) Полный доступ к каталогу:

    Все

  5. Нажать кнопку OK.

Дополнительно

Кроме обновления внешних вспомогательных программ, иногда выполняется обновление системных библиотек программы «М-АПТЕКА плюс» (таких, как EscLib.dll и некоторых других).

Эти внутренние компоненты системы обязательно должны устанавливаться на компьютере-сервере Cache от имени пользователя с правами администратора. Поскольку в штатной ситуации Cache работает с правами именно такого пользователя (см. Дополнительная настройка Cache), то обычно не возникает каких-либо проблем с правами доступа к файловой системе сервера.

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

Чаще всего пользователи программы «М-АПТЕКА плюс» не имеют прав администратора на своих клиентских компьютерах. Это может привести к ошибкам запуска клиентской части после того, как будет обновлена серверная часть.

Примечание

В сообщении об ошибках при такой ситуации будет указано, что причину можно увидеть в протоколе Системные ошибки программы (см. Просмотр протоколов работы).

Если такая ситуация возникла, следует один раз запустить клиентскую часть программы «М-АПТЕКА плюс» от имени пользователя с правами администратора этого клиентского компьютера. Клиентская часть системы будет обновлена, и в дальнейшем можно будет запускать её от имени пользователя, не имеющего администраторских прав.