Не знаю, работает ли это на практике, но судя по всему, нужно сразу после накатывания модификаций, через меню сервис последовательно вызвать
1. Средства разработки\объекты приложения\обновить АОD
2. -\\- обновить словарь
3. -\\- обновить данные
В каждом из этих случаев "взводится" соответствующая команда всем АОСам через вызов SysEvent::fireEvent(SysEventType::XXXXXX), где XXXXXX = [FlushAOD | FlushData | FlushDictionary | ...]); Команда помещается в таблицку табличку SysEvent.
Каждый из АОСов в отдельном потоке потоянно "слушает" эту таблицу и при появлении в ней команды исполняет её посредством класса "SysEventHandler", который инициализируется на стартапе АОСа. Таким образом, проблема сброса кэша и подтягивания изменений должна решаться для АОСов.Ну а клиентам придется перезайти в систему, хотя, можно подумать в сторону простейшего допила этой функции для клиентских сессий. (но, видимо, неспроста функциональность намеренно ограничена только для серверных сессий - см. код)
Этот механизм реализован как минимум в AX2009. Если механизм эффективен, то для старых версий навскидку можно реализовать по аналогии.
|