26.12.2014, 09:38 | #1 |
Участник
|
А давайте поговорим про CIL
Приветствую!
У нас стоит AX 2012 R2 и есть 3 рабочих АОСа. Разработку ведут программисты на тестовой БД, а раз в неделю переносят доработки на рабочую базу. Перенос происходит так: 1) Перенос доработок на рабочую базу 2) Остановка всех АОСов 3) Удаление всех файлов из "c:\Program Files\Microsoft Dynamics AX\60\Server\DAX\bin\XppIL" на всех АОСах 4) Запуск одного АОСа (АОС1) и запуск на нём глобальной компиляции 5) Запуск на этом же АОСе создания полного CIL 6) Перенос всех файлов из папки "c:\Program Files\Microsoft Dynamics AX\60\Server\DAX\bin\XppIL" с АОС1 на остальные АОСы Такой не быстрый метод (мягко говоря) мы используем потому что постоянно раньше возникли какие то проблемы с CIL и теперь мы стараемся делать всё предельно аккуратно. При этом в этой папке создаётся порядка 280 тыс. файлов! И вот с недавнего времени в какой то момент времени с одного или 2-х АОСов стали "пропадать" файлы в этой папке. Т.е. в какой-то момент смотришь - а файлов там уже не 280 тыс, а чуть меньше 3 тыс! Я включил аудит и понял что удаляет файлы сам сервис АОСа (ax32srv.exe), при чём может удалить их сразу после своего запуска, а может через какое то время (а может и вообще не удалить). Вопроса два: 1) Все ли файлы нужны в этой папке? 2) Почему АОС может так себя вести (удалять файлы)? И большая просьба поделиться тем, как вы переносите доработки и есть ли у вас проблемы с CIL! |
|
|
За это сообщение автора поблагодарили: Logger (1). |
26.12.2014, 10:09 | #2 |
Участник
|
Всем аосам не нужны файлы в их папке XppIL\Source\, достаточно только для одного. Переносим модификации с помощью моделстор из специально подготовленного приложения
|
|
26.12.2014, 11:47 | #3 |
Участник
|
6-й пункт - это закат солнца вручную. Ваш "ответственный" AOS после полной пересборки CIL закачивает соотв. файлы сборки в базу модели, другие AOS'ы при запуске проверяют актуальность своих файлов и при необходимости сами выкачивают новые файлы сборки из базы модели. Именно для этого, согласно официальным документам по развертыванию модификаций, их надо перезапускать. И да, файлы из каталога Source нужны лишь для компиляции CIL и отладки кода из VS, но не для повседневной работы AOS'ов.
|
|
26.12.2014, 11:48 | #4 |
Участник
|
1. После остановки всех АОСов удаляем папку XPPIL (или переименовываем для скорости). Еще можно файлы с метками поудалять (но не папку).
2. Переносим доработки на один АОС, делаем инкрементный CIL. Если ошибки - делаем полный CIL. 3. Рестартуем перый АОС, убеждаемся, что все работает. 4. Стартуем все остальные АОСы - они сами выкачивают XPPIL из БД, метки если удаляли. Итого за 15 минут можно все успеть. При полном CIL - 30 минут.
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: Logger (1), Ace of Database (2). |
26.12.2014, 20:29 | #5 |
Участник
|
> давайте поговорим про CIL
напомнило сагу об X, Y и Z |
|
26.12.2014, 23:16 | #6 |
Участник
|
есть же White Paper: Deploying Customizations Across Microsoft Dynamics AX 2012 Environments
http://www.microsoft.com/en-us/downl....aspx?id=26571 казалось бы, при чем тут CIL? |
|
27.12.2014, 10:55 | #7 |
Участник
|
Цитата:
Debugging in Microsoft Dynamics AX 2012
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
|
За это сообщение автора поблагодарили: trud (3), S.Kuskov (2). |
28.12.2014, 02:15 | #8 |
Участник
|
Спасибо всем большое за ответы, всё предельно понятно теперь
|
|
28.12.2014, 13:22 | #9 |
Сенбернар
|
Цитата:
Сообщение от lvan
есть же White Paper: Deploying Customizations Across Microsoft Dynamics AX 2012 Environments
http://www.microsoft.com/en-us/downl....aspx?id=26571 казалось бы, при чем тут CIL? - чем перенос проекта (а-ля "старая", до 2012, Акса) реально грозит.. переносящему? - приколы типа ругани "объект уже существует" (это - про сам проект, да.. все прочее - нормально импортируется.. ) - не упоминать. - чем реально лучше новый механизьм.. с "моделями".. реклама а-ля "Microsoft AX2012 начинает новую эру в управлении артефактами метаданных." (с) Inside Ax 2012 - неинтересна.. PS : И если можно - не надо ссылок на вайтпейперы и прочую шелуху.. форум - профессиональный, как бы.. только личное мнение, так, да? Своими словами, на своем опыте, кратко (талантливо, то есть )
__________________
Best Regards, Roman Последний раз редактировалось RVS; 28.12.2014 в 13:27. |
|
28.12.2014, 18:27 | #10 |
Участник
|
Модели - механизм в определенном смысле более гранулярный, чем XPO-шники. В одной модели может быть один метод или табличное поле, в другой модели - другой метод или табличное поле. При выгрузке XPO весь объект попадает в выгрузку, максимум можно играться слоями. Это может сильно осложнить жизнь при слиянии изменений, если для одного и того же объекта часть изменений надо перенести, а часть - нет.
Кроме того, перенос проектами реально грозит разъехавшимися ID-шниками объектов, особенно тех, что в DataDictionary Одной из фишек 2012-й является вроде как преодоление проблемы ID-шников объектов - их пересечения и исчерпания. Частью решения стали ID-шники, специфичные для инсталляции, см. также The solution to the element ID problem, и при переносе модификаций проектами ID-шники не сохраняются - выделяются новые. Как минимум, это чревато невозможностью легко и просто перенести затем рабочую базу в тест, потому что в тесте будут совершенно другие ID-шники в SqlDictionary и в полях типа RefTableId. Сразу скажу, что модели тоже не решают эту проблему - надо переносить базу модели целиком. |
|
|
За это сообщение автора поблагодарили: RVS (1), Logger (3). |
28.12.2014, 19:36 | #11 |
Сенбернар
|
Цитата:
Сообщение от gl00mie
Модели - механизм в определенном смысле более гранулярный, чем XPO-шники. В одной модели может быть один метод или табличное поле, в другой модели - другой метод или табличное поле. При выгрузке XPO весь объект попадает в выгрузку, максимум можно играться слоями. Это может сильно осложнить жизнь при слиянии изменений, если для одного и того же объекта часть изменений надо перенести, а часть - нет.
Кроме того, перенос проектами реально грозит разъехавшимися ID-шниками объектов, особенно тех, что в DataDictionary Одной из фишек 2012-й является вроде как преодоление проблемы ID-шников объектов - их пересечения и исчерпания. Частью решения стали ID-шники, специфичные для инсталляции, см. также The solution to the element ID problem, и при переносе модификаций проектами ID-шники не сохраняются - выделяются новые. Как минимум, это чревато невозможностью легко и просто перенести затем рабочую базу в тест, потому что в тесте будут совершенно другие ID-шники в SqlDictionary и в полях типа RefTableId. Сразу скажу, что модели тоже не решают эту проблему - надо переносить базу модели целиком. - мне, как пользователю (а программист - это тоже.. гм.. пользователь).. нафиг не нужны все эти "красЯвости", с "бОльшими гранулярностями".. Зачем это придумано - в общем, понятно.. да, и было - понятно.. )) Остался вопрос : "- чем перенос проекта (а-ля "старая", до 2012, Акса) реально грозит.. переносящему?" Собственно, все.. все прочее - маркетинг от Микрософта ) PS : "Одной из фишек 2012-й является вроде как преодоление проблемы ID-шников объектов - их пересечения и исчерпания. Частью решения стали ID-шники, специфичные для инсталляции, см. также The solution to the element ID problem, и при переносе модификаций проектами ID-шники не сохраняются - выделяются новые. Как минимум, это чревато невозможностью легко и просто перенести затем рабочую базу в тест, потому что в тесте будут совершенно другие ID-шники в SqlDictionary и в полях типа RefTableId." Мне это напоминает.. Dimensions в 2012-й.. только ленивый, походу, на написал еще примочку, которая по имени и DefaultDimension вытаскивает значение + расшифровку ))) Уроды писали 2012. Чтоб им.. икалось )) PS : вопрос - остался..
__________________
Best Regards, Roman Последний раз редактировалось RVS; 28.12.2014 в 20:38. |
|
28.12.2014, 20:44 | #12 |
Сенбернар
|
Цитата:
У меня так вот сейчас пока.. Вооот.. )) ЗЫ : "Мелочь" а-ля что-то там поправить или отчет нарисовать - "разрабатывается" на Test. Отсюда и приколы типа "не уходи с работы, пока не спас проект.. в папку, блин.." Повторяю : архитектура сделана.. уродами, и плохо документирована. Почему плохо - а потому, что они сами не знают, ЧТО из этого.. вырастет ))
__________________
Best Regards, Roman Последний раз редактировалось RVS; 28.12.2014 в 20:49. |
|
29.12.2014, 09:36 | #13 |
Участник
|
Цитата:
Если работать с кодом только при помощи контроля версий, то можно совместить достоинства моделей с достоинствами XPO. Добавил статью на erpkb - дополняйте Последний раз редактировалось belugin; 29.12.2014 в 09:44. |
|
|
За это сообщение автора поблагодарили: Logger (3). |
29.12.2014, 11:09 | #14 |
Модератор
|
C чего бы это вдруг ?
__________________
-ТСЯ или -ТЬСЯ ? |
|
29.12.2014, 11:13 | #15 |
Участник
|
Мне непонятен смысл вашего вопроса - вы говорите, что такого не бывает, или вам непонятны причины этого?
|
|
29.12.2014, 11:17 | #16 |
Модератор
|
Первое. До сих пор не сталкивался. Попробую
__________________
-ТСЯ или -ТЬСЯ ? |
|
29.12.2014, 11:40 | #17 |
Участник
|
Цитата:
если про "реальную" угрозу, то зависит от босса, IT админа (который бакапит базу), но в общем случае, думаю, вплоть до летального исхода. |
|
29.12.2014, 12:10 | #18 |
Сенбернар
|
Цитата:
А на серьезе если - представьте, чисто умозрительно, что есть 2012-я, в которую новые доработки пытаются (и небезуспешно.. может быть - пока небезуспешно) переносить именно проектами. Вопрос : чем это потенциально грозит. Ну, не переносящему, конечно, а самой Аксапте..
__________________
Best Regards, Roman |
|
29.12.2014, 12:14 | #19 |
Участник
|
потерей данных
|
|
29.12.2014, 12:16 | #20 |
Сенбернар
|
Иван, краткость - она сестра, конечно. А подробнее - никак? Или в документ послать, правильный, где это обосновано?
Вот как-то представить, что от заливки проекта в Аксу в ней, Аксе, пропадают данные - вот не получается.. хоть убейте )
__________________
Best Regards, Roman |
|
Теги |
ax2012, cil, xpo, модель, модель данных, полезное |
|
|