12.01.2005, 22:29 | #1 |
Участник
|
Объясните смысл глобальной компиляции..
Здравствуйте!
Сразу предупреждаю, что большого опыта администрирования/программирования Axapta нет - только учусь. Расскажите в чем заключается смысл глобальной компиляции? Насколько я понимаю - это что - то наподобие сборки программы из исходников.. Если это так, то перекомпиляция должна относиться только к аппликейшену.. К базе данных же относиться процедура перестройки перекрестных ссылок, построение индексов и тд. Теперь расписываю ситуацию: 1) Создаю базу в MS SQL. Импортирую базу с определенным набором данных из сторонней Axapta 3.1, настраиваю ODBC; 2) Ставлю Axapa 3.1, Клиента; 3) Не запуская конфигурации устанавливаю SP3 (Правильно ли это? Надо ли ставить какие либо галочки при перестройке перекрестных ссылок - я не ставил..); 4) Запускаю Axapta и произвожу все действия из контрольного списка установки/обновления; Вот теперь главный вопрос: Если теперь на другом компьютере произвести действия 2 и 3, выгрузить базу из, подключить ее к свежеустановленному там же аппликейшену, то при первом запуске глобальной перекомпиляции не потребуется и вообще в контрольном списке все будет ОК.. Так заначит перекомпилированный аппликейшн выгрузился вместе с данными из СУБД? Тогда как он там хранится? Зачем тогда папка с аппликейшеном? Объясните плз.. Совсем запутался... |
|
12.01.2005, 22:47 | #2 |
Участник
|
Re: Объясните смыслг глобальной компиляции..
Цитата:
Изначально опубликовано IlyaK
Если теперь на другом компьютере произвести действия 2 и 3, выгрузить базу из, подключить ее к свежеустановленному там же аппликейшену, то при первом запуске глобальной перекомпиляции не потребуется и вообще в контрольном списке все будет ОК.. Так заначит перекомпилированный аппликейшн выгрузился вместе с данными из СУБД? Тогда как он там хранится? Зачем тогда папка с аппликейшеном? Объясните плз.. Совсем запутался... то ли в sysConfig, то ли еще куда (на вскидку не помню, а рабочий комп... на работе) Если номер билда http://axapta.mazzy.ru/hints/startupcmd/#SetBuildNo в аппликейшене и в этой системной таблице совпадают, то Аксапта перекомпиляцию не просит. Вроде бы так (буду рад, если кто поправит) А вообще говоря, контрольный список очень тупой инструмент. Просто отключите эти списки, если уверены что у вас установка правильная. Что делает глобальная компиляция? К сожалению, в Аксапте осталось устаревший инструмент - макросы. При изменении макросов вполне возможна ситуация, когда потребуется перекомпиляция объектов. Причем из-за этих макросов системе очень сложно разобраться что именно надо перекомпилировать, поэтому Аксапта тупо предлагает перекомпилировать все. |
|
12.01.2005, 23:52 | #3 |
Участник
|
Спасибо за быстрый ответ!
Значит, в моем случае, аксапта установлена неправильно : перекомпиляция не была проведена и корректно аппликейшн работать не будет? Так? |
|
13.01.2005, 11:41 | #4 |
Участник
|
Глобальная компиляция нужна не только для корректной подстановки измененных макросов.
Эта процедура нужна также для разрешения(нахождения соответствующих точек входа) всех внутренних и внешних ссылок и актуализация ссылок на адреса внутренних и внешних переменных. Особенно это важно для многоуровневого наследования в классах. Так как класс-потомок (уже ранее скомпилированный) может совсем ничего не знать о том, что произошли изменения в классе-предке. И этот класс потомок может обращаться по адресам в памяти класса-предка, которые уже совсем не для того используются... Из за этого могут просходить ошибки времени выполнения которые грохают ахарту. Поэтому, также делается второй проход при Глобальной компиляции, чтобы разрешить перекрестные ссылки между классам. 2 IlyaK Жизнеспособная комбинация в ахарте только одна. 1клиент соответствует 1аппликайшну подключенному к 1базе. все другие комбинации рано или поздно приведут к нестабильной работе и краху приложения или базы. Говоря про одного клиента я имею в виду ОДНУ ВЕРСИЮ клиента, а не одну инсталляцию для конечного юзера. |
|