AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.12.2014, 09:38   #1  
svd-alex is offline
svd-alex
Участник
 
12 / 11 (1) +
Регистрация: 18.12.2014
А давайте поговорим про 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  
online
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,738 / 404 (17) +++++++
Регистрация: 23.03.2006
Всем аосам не нужны файлы в их папке XppIL\Source\, достаточно только для одного. Переносим модификации с помощью моделстор из специально подготовленного приложения
Старый 26.12.2014, 11:47   #3  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от svd-alex Посмотреть сообщение
4) Запуск одного АОСа (АОС1) и запуск на нём глобальной компиляции
5) Запуск на этом же АОСе создания полного CIL
6) Перенос всех файлов из папки "c:\Program Files\Microsoft Dynamics AX\60\Server\DAX\bin\XppIL" с АОС1 на остальные АОСы
6-й пункт - это закат солнца вручную. Ваш "ответственный" AOS после полной пересборки CIL закачивает соотв. файлы сборки в базу модели, другие AOS'ы при запуске проверяют актуальность своих файлов и при необходимости сами выкачивают новые файлы сборки из базы модели. Именно для этого, согласно официальным документам по развертыванию модификаций, их надо перезапускать. И да, файлы из каталога Source нужны лишь для компиляции CIL и отладки кода из VS, но не для повседневной работы AOS'ов.
Старый 26.12.2014, 11:48   #4  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
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  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
> давайте поговорим про CIL

напомнило сагу об X, Y и Z
Старый 26.12.2014, 23:16   #6  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
есть же 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  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
Цитата:
Сообщение от svd-alex Посмотреть сообщение
файлов там уже не 280 тыс, а чуть меньше 3 тыс!
Вопроса два:
1) Все ли файлы нужны в этой папке?
2) Почему АОС может так себя вести (удалять файлы)?

И большая просьба поделиться тем, как вы переносите доработки и есть ли у вас проблемы с CIL!
Видать у вас галка "Enable breakpoints to debug X++ code running on this server" включена, поэтому 280 тыс файлов (по файлу на каждый метод).
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  
svd-alex is offline
svd-alex
Участник
 
12 / 11 (1) +
Регистрация: 18.12.2014
Спасибо всем большое за ответы, всё предельно понятно теперь
Старый 28.12.2014, 13:22   #9  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от 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  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Модели - механизм в определенном смысле более гранулярный, чем 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  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от 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  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Как минимум, это чревато невозможностью легко и просто перенести затем рабочую базу в тест, потому что в тесте будут совершенно другие ID-шники в SqlDictionary и в полях типа RefTableId. Сразу скажу, что модели тоже не решают эту проблему - надо переносить базу модели целиком.
Как максимум - это решается ежедневным обновление Test <<-- Prod, со спасением проектов.. "кто не спрятался - никто не виноват".

У меня так вот сейчас пока.. Вооот.. ))

ЗЫ : "Мелочь" а-ля что-то там поправить или отчет нарисовать - "разрабатывается" на Test. Отсюда и приколы типа "не уходи с работы, пока не спас проект.. в папку, блин.."

Повторяю : архитектура сделана.. уродами, и плохо документирована. Почему плохо - а потому, что они сами не знают, ЧТО из этого.. вырастет ))
__________________
Best Regards,
Roman

Последний раз редактировалось RVS; 28.12.2014 в 20:49.
Старый 29.12.2014, 09:36   #13  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от RVS Посмотреть сообщение
- мне, как пользователю (а программист - это тоже.. гм.. пользователь).. нафиг не нужны все эти "красЯвости", с "бОльшими гранулярностями"..
  1. Больше "гранулярность" означает что больше ситуаций, когда вместо анализа исправлений можно просто перенести новый код. "Нафиг не нужны все эти "красЯвости", с "бОльшими гранулярностями"" означает "Я, как программист, люблю сидеть в утилите сравнения, анализировать, что изменилось и вручную сливать свои изменения с изменениями в новой версии" - но это свойство скорее новой версии AX, а не моделей, как таковых. Например, если вы сделали добавление кнопки на форме, безо всяких новых моделей, при накатывании изменений она также появится на измененной форме сама.
  2. Модели так же получили неофициальное название "параллельные слои". Так как можно сделать несколько независимых моделей на одном слое. Теоретически можно совместить на одном слое два партнерских решения - правда это требует отказа от изменения кода - использования только точек расширения (события и т.д.).
  3. Проекты Visual Studio, которые в AOT нельзя надежно перенести в каком-то виде, кроме как в модели. При экспорте в XPO может получится файл, который нельзя загрузить.
Моделям также присущи определенные недостатки:
  • при импорте модели возникает проект обновления, предлагающий перекомпилировать все приложение (чего можно избежать, но все-таки)
  • модели чрезвычайно чувствительны к номеру версии, на которых их делают. Часто, на более старую версию нельзя установить модель, сделанную на более новой версии.

Если работать с кодом только при помощи контроля версий, то можно совместить достоинства моделей с достоинствами XPO.

Добавил статью на erpkb - дополняйте

Последний раз редактировалось belugin; 29.12.2014 в 09:44.
За это сообщение автора поблагодарили: Logger (3).
Старый 29.12.2014, 11:09   #14  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от belugin Посмотреть сообщение
Проекты Visual Studio, которые в AOT нельзя надежно перенести в каком-то виде, кроме как в модели. При экспорте в XPO может получится файл, который нельзя загрузить
C чего бы это вдруг ?
__________________
-ТСЯ или -ТЬСЯ ?
Старый 29.12.2014, 11:13   #15  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Vadik Посмотреть сообщение
C чего бы это вдруг ?
Мне непонятен смысл вашего вопроса - вы говорите, что такого не бывает, или вам непонятны причины этого?
  • Если первое, то попробуйте перенести через XPO проект отсюда http://axcoder.blogspot.ie/2014/11/s...sing-xlnt.html
  • Если второе, то мне багу закрыли с формулировкой "юзайте модели"
Старый 29.12.2014, 11:17   #16  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Первое. До сих пор не сталкивался. Попробую
__________________
-ТСЯ или -ТЬСЯ ?
Старый 29.12.2014, 11:40   #17  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
Цитата:
Сообщение от RVS Посмотреть сообщение
Остался вопрос : "- чем перенос проекта (а-ля "старая", до 2012, Акса) реально грозит.. переносящему?"
смотря в каком ключе на вопрос посмотреть
если про "реальную" угрозу, то зависит от босса, IT админа (который бакапит базу), но в общем случае, думаю, вплоть до летального исхода.
Старый 29.12.2014, 12:10   #18  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от lvan Посмотреть сообщение
смотря в каком ключе на вопрос посмотреть
если про "реальную" угрозу, то зависит от босса, IT админа (который бакапит базу), но в общем случае, думаю, вплоть до летального исхода.
Боюсь-боюсь-боюсь..

А на серьезе если - представьте, чисто умозрительно, что есть 2012-я, в которую новые доработки пытаются (и небезуспешно.. может быть - пока небезуспешно) переносить именно проектами.

Вопрос : чем это потенциально грозит. Ну, не переносящему, конечно, а самой Аксапте..
__________________
Best Regards,
Roman
Старый 29.12.2014, 12:14   #19  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
потерей данных
Старый 29.12.2014, 12:16   #20  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от lvan Посмотреть сообщение
потерей данных
Иван, краткость - она сестра, конечно. А подробнее - никак? Или в документ послать, правильный, где это обосновано?

Вот как-то представить, что от заливки проекта в Аксу в ней, Аксе, пропадают данные - вот не получается.. хоть убейте )
__________________
Best Regards,
Roman
Теги
ax2012, cil, xpo, модель, модель данных, полезное

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AXBR: AX2012 – Common Intermediate Language (CIL) – (Parte I) Blog bot DAX Blogs 0 04.04.2013 09:11
X++ to CIL Blog bot DAX Blogs 0 01.04.2013 14:11
X++: X++ Arrays Behave Differently in .NET CIL, in Dynamics AX 2012 Blog bot DAX Blogs 0 17.09.2012 23:11
emeadaxsupport: In Microsoft Dynamics AX 2012, compiler output setting of Message Window may cause errors when generating (incremental) CIL Blog bot DAX Blogs 0 16.03.2012 23:12
X++: X++ Function num2Str: Difference in .NET CIL Mode Blog bot DAX Blogs 0 09.03.2012 07:45

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:26.