![]() |
#9 |
Участник
|
Тогда вместе с накатыванием изменений нужно обязательно выполнять дополнительные действия на других AOS'ах, иначе выполняемая на них бизнес-логика может разъехаться, со всеми вытекающими...
Цитата:
На самом деле не все так плачевно - в таких случаях помогает перекомпиляция соотв. объекта приложения на каждом AOS'е, в случае класса - лучше инкрементная. Понятно, что если AOS'ов много, то вручную заходить на каждый лениво. Мы для этих целей приделали классец, который висит в контекстном меню в AOT. При выборе соотв. пункта контекстного меню, скажем, для проекта, соотв. объекты приложения сначала компилируются в текущей сессии, а потом, если все прошло без ошибок, формируется xml-файлик для запуска компиляции из командной строки, и для каждого активного AOS'а из SysServerSessions, кроме текущего, последовательно запускается клиент с этим файликом, который компилит нужные объекты приложения на соот. AOS'е, за счет чего каждый из них подхватывает изменения. Последовательный запуск компиляции нужен для того, чтобы AOS'ы не конфликтовали при попытке обновить одни и те же файлы приложения. Разумеется, если меняется код, выполняемый на клиенте, изменения в той или иной клиентской сессии могут подхватиться не сразу. |
|