Обновление платформы

Процесс обновления платформы предполагает последовательное выполнение следующих шагов:

1.создание рабочей копии базы данных;

2.проведение на созданной копии процедуры обновления и всех дополнительных мероприятий, которые необходимы для преодоления изменений, нарушающих обратную совместимость (подробно описаны далее в этом же разделе);

3.проведение тестирования основных процессов компании в обновленной копии базы;

4.только в случае отсутствия проблем на предыдущих этапах допустим переход к обновлению основной базы данных;

5.остановка работы в базе (выключение всех серверов приложений, для надежности можно сменить пароли пользователей чтобы гарантировать монопольный доступ);

6.создание резервной копии базы данных (backup);

7.выполнение процедуры обновления и всех сопутствующих мероприятий, проведение тестирования критических функций;

8.при возникновении проблем следует восстановить базу данных из резервной копии, откатив изменения, и предоставить пользователям возможность работать дальше на старой версии базы. С возникшими проблемами следует разбираться на копии базы данных(!), повторив процедуру с пункта 1.

Процедура обновления начинается с обновления базы данных. Оно производится с помощью утилиты-консольного приложения VersionUpgrade.exe, которая входит в дистрибутив Ultima Businessware®.

Настройки утилиты хранятся в XML-файле VersionUpgrade.exe.config (при первом запуске утилиты можно скопировать или переименовать файл VersionUpgrade.exe.config.sample). Настройки, которые может менять администратор, находятся в секции userSettings:

<userSettings>

 <Ultima.VersionUpgrade.Settings>

         <setting name="AppServerID" serializeAs="String">

                 <value>1</value>

         </setting>

         <setting name="UserID" serializeAs="String">

                 <value>1</value>

         </setting>

         <setting name="ConnectionString" serializeAs="String">

                 <value>Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)

                         (HOST=192.168.0.24)(PORT=1521))

                         (CONNECT_DATA=(SERVICE_NAME=UNEXT)));

                         User ID=kernel;Password=******;Enlist=True;

                         Promotable Transaction=Local;</value>

         </setting>

         <setting name="SysConnectionString" serializeAs="String">

                 <value>Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)

                         (HOST=192.168.0.24)(PORT=1521))

                         (CONNECT_DATA=(SERVICE_NAME=UNEXT)));

                         User ID=sys;Password=******;Enlist=True;

                         Promotable Transaction=Local;DBA PRIVILEGE=sysdba;</value>

         </setting>

 </Ultima.Server.Properties.Settings>

</userSettings>

AppServerID – идентификатор сервера приложений.

UserID – идентификатор пользователя, от имени которого производится изменение данных.

35_important

У пользователя UserID должны быть права разработчика (роль обладает правом Developer).

ConnectionString – строка, содержащая настройки доступа к серверу базы данных для пользователя kernel.

SysConnectionString — строка соединения для пользователя с правами администратора, который может назначать пользователю kernel новые права.

35_settings

Для обновления базы данных необходимо:

отредактировать конфигурационный файл VersionUpgrade.exe.config:

задать в секциях ConnectionString и SysConnectionString значения параметров HOST, SERVICE_NAME и PASSWORD;

убедиться, что указанный в секции AppServerID сервер приложений работает на ветке конфигурации, помеченной тегом Default. Запускать процедуру обновления базы на любом другом теге недопустимо (!);

запустить утилиту VersionUpgrade.exe.

Обновление версии базы данных производится инкрементально. То есть, если производится обновлении с версии 2.3.0.6 до 2.3.0.9, процесс последовательно пройдет все стадии обновления: сначала до 2.3.0.7, затем до 2.3.0.8 и, наконец, до 2.3.0.9.

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

VersionUpgrade

После обновления базы данных можно приступать к обновлению платформы, для чего следует:

1.сделать резервную копию текущих бинарных файлов платформы;

2.скопировать бинарные файлы поверх файлов платформы на серверах приложений. При необходимости, например, если изменилась первая (major) версия платформы, необходимо перекомпилировать клиентские модули и метаданные;

3.запустить новый сервер приложений и клиентское приложение. При запуске сервер или клиент могут сообщить о невозможности загрузить обработчики или клиентские модули, следует игнорировать эти сообщения;

4.на каждой используемой ветке выполнить Developer -> Compile -> Regenerate metadata classes. На обычных не branch-тегах это делать не следует (!);

5.на каждой используемой ветке выполнить Developer -> Compile -> Compile & Reload metadata;

6.перекомпилировать клиентские модули с новой версией метаданных;

7.перезапустить сервер и клиентское приложение;

8.обновление завершено.

По завершении обновления следует преодолеть изменения, нарушающие обратную совместимость (breaking changes). Подробно об этом написано в соответствующем разделе документации разработчика.