Установка обновлений биллинга

По мере обнаружения ошибок в текущей версии программы выпускаются обновления в виде новых билдов (сборок). Каждый новый билд модуля сопровождается комментарием к сделанным исправлениям. Комментарии доступны на странице загрузки продукта. Также ведётся RSS-лента обновлений.

Периодически следует сверять текущие установленные билды модулей и плагинов с доступными на сайте. Для получения информации по версиям и билдам компонентов биллинга воспользуйтесь меню Справка⇒О программе.

x 234

В верхней области отображаются версии и билды клиента и сервера. Обновление клиента и сервера доступны на сайте единым пакетом. Ниже перечислены установленные в системе модули и плагины, их версии и билды. Для установки модулей и плагинов используется утилита bg_installer.sh (.bat).

./bg_installer.sh <имя_файла_с_модулем>

Для Linux.

bg_installer.bat <имя_файла_с_модулем>

Для Windows.

Файл с модулем должен быть загружен и располагаться в каталоге BillingServer.

При установке обновлений следует останавливать процесс сервера биллинга, планировщика и загрузчика логов и запускать их после установки пакетов.

Для установки обновления пакет модуля, либо плагина необходимо установить повторно. Поддерживается автоматическое обновление с FTP-сервера ftp://abilling.ru. Для обновления системы остановите сервер биллинга, планировщик и загрузчик логов а затем выполните команду:

./bg_installer.sh update

Для Linux платформы.

bg_installer.bat update

Для Win платформы.

Инсталлятор проверит наличие обновлений и предложит их установить выбрав нажав клавишу y.

[bill@bill-reg BillingServer]$ ./bg_installer.sh update
Update starting..
Update from ftp://abilling.ru/pub/abilling
Server version is 4.4
Changing dir to /pub/abilling/4.4
Checking updates for ru.avantis.abilling.plugins.crm..
Found update for crm build 50 packet crm_4.4_52.zip updating to build 52
Checking updates for ru.avantis.abilling.plugins.documents..
Checking updates for card..
Checking updates for dialup..
Checking updates for email..
Checking updates for ipn..
Checking updates for npay..
Checking updates for reports..
Checking updates for voiceip..
Checking updates for bill..
Checking updates for gorod..
Checking updates for server..
Found update for BillingServer build 102 packet update_4.4.zip updating to build 104
Checking updates for client..
Install 2 updates (y/n):

Возможно установить только все обновления сразу. Также необходимо останавливать сервер, планировщик и загрузчик логов до обновления и стартовать после.

Не забывайте делать резервную копию каталога BillingServer при установке обновлений. Обновление перетирает все XSLT-шаблоны и многие другие файлы, заменяя их стандартными из пакета.

Для Linux также есть скрипт update.sh, который самостоятельно останавливает службы, запускает процесс обновления и стартует службы после. Кроме того, он сохраняет лог процесса обновления в файл.

Для предотвращения перетирания файла при обновлении вы можете перед его модификацией создать копию с именем <file_name>.orig (например, style.css.orig). При установке пакета инсталлятор будет проверять перед записью каждого файла наличие файла с таким же именем в текущей установке. Если файл существует, но отличается от того, что в пакете, предпринимается попытка найти файл <file_name>.orig.

Если оригинальный файл существует и не отличается от файла из пакета, то он не будет перезаписан, система сообщит: File doesn’t changed <filePath>. Если и оригинальный файл не совпадает со вновь предлагаемым, файл будет записан.

Перечень перезаписанных файлов сообщается после завершения процедуры установки, либо обновления после фразы REPLACED FILES:. Вы должны вновь внести в данные файлы требуемые корректировки и снова создать .orig-копию файла.

Обновление клиента происходит автоматически при последующем подключении к серверу биллинга и установленной опции Загружать обновления с данного сервера.

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

В системе обновления биллинга работает механизм предотвращения повторного выполнения SQL-запросов обновления базы данных, что значительно ускоряет обновление системы. Выполненные SQL-запросы кэшируются и хранятся в базе данных биллинга. В случае, если по какой-либо причине необходимо повторное выполнение SQL-запросов при обновлении модуля (или ядра), то необходимо запустить

./bg_installer.sh killhash <entity_id>

для Linux или

bg_installer.bat killhash <entity_id>

для Windows,

где <entity_id> - код сущности, для которой необходимо уничтожить кэш SQL-запросов (для ядра = 0; для плагина = код плагина из Плагины ⇒ Настройки плагинов; для экземпляра модуля = m<mid>, где <mid> - код экземпляра модуля из Модули ⇒ Редактор модулей и услуг).

Например:

./bg_installer.sh killhash m10

Обновление других серверных приложений

Все серверные приложения получают обновления от сервера биллинга посредством MQ-сообщений. Единый набор серверных библиотек биллинга на всех приложениях обеспечивает унифицированную среду для работы скриптов и расширений. Для обновления приложения используется скрипт update.sh (.bat). Вот примерный вывод скрипта при обновлении, в момент обновления BillingServer должен быть запущен.

[root@bgb InetAccounting]# ./update.sh
Starting libraries updating. Requesting to BillingServer lib info.
 05-19/18:47:40  INFO [main] DefaultServerSetup - Binding javax.jms.ConnectionFactory[org.apache.activemq.ActiveMQConnectionFactory@1e3118a] to java:comp/env/mq/connectionFactory
mq 05-19/18:47:40  INFO [EventProcessor-init] EventProcessor - Init EventProcessor MQ connection factory...
May 19, 2011 6:47:40 PM org.apache.activemq.transport.failover.FailoverTransport doReconnect
INFO: Successfully connected to tcp://localhost:61616
mq 05-19/18:47:41 DEBUG [main] EventProcessor - Request, timeout 2000 : Event[avantis.billing.server.installer.event.GetLibrariesInfoEvent] timestamp: -1; moduleId: -1; pluginId: -1; cid: -1; scid: -1; userId: -1
Taking inet.jar...
mq 05-19/18:47:41 DEBUG [main] EventProcessor - Request, timeout 0 : Event[avantis.billing.server.installer.event.GetLibraryEvent] timestamp: -1; moduleId: -1; pluginId: -1; cid: -1; scid: -1; userId: -1
OK. Saving to lib.app.update.
Taking kernel.jar...
mq 05-19/18:47:41 DEBUG [main] EventProcessor - Request, timeout 0 : Event[avantis.billing.server.installer.event.GetLibraryEvent] timestamp: -1; moduleId: -1; pluginId: -1; cid: -1; scid: -1; userId: -1
OK. Saving to lib.app.update.
Update finished. Restart application.
05-19/18:47:45  INFO [Thread-3] EventProcessor - Shutdown EventProcessor...

После обновления новые библиотеки сохраняются в каталог lib.app.update и применяются только при перезапуске приложения.

Следите, чтобы все ваши серверные приложения были обновлены!

Данная схема распространяется только на серверные приложения, связанные с ядром через JMS. Изолированные приложения обновляются отдельно. Такие приложения не содержат конфигурации доступа к MQ-серверу в конфигурационном файле, у них нет скрипта update и каталога lib.app.update. К таким приложениям относятся, например, DHCP-сервер модуля IPN, CashCheck-сервер.

Снапшоты

В данный момент есть версия скрипта только для ОС Linux! Для Windows выполняйте требования по резервному копированию перед обновлением!

Для сохранения текущего состояния библиотек биллинга, каталога webroot, данных по установленным модулям и плагинам в БД с ABilling поставляется скрипт snapshot.sh. Для создания снапшота вызовите перед обновлением:

./snapshot.sh create

Снапшоты сохраняются архивами в каталог BillingServer/snapshots. Для восстановления снапшота команда:

./shapshot.sh restore <FILE>

, где <FILE> - имя файла со снапшотом.

Восстановив сервер из снапшота необходимо обновить с него все другие серверные приложения. Функционал скрипта реализован исключительно сторонними приложениями и может быть легко скорректирован.