21.01.2015, 01:14 | #1 |
Участник
|
Fast full compilation in AX 2012
Источник: http://alexvoy.blogspot.com/2015/01/...n-ax-2012.html
============== This is just a short batch that runs a full compilation by means of AxBuild with after-run cleaning in AX 2012. c: cd "C:\Program Files\Microsoft Dynamics AX\60\Server\CGI_DAX62_DEVTM2_AOS1\bin" axbuild xppcompileall /s=01 /altbin="C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin" @echo to start compilation log import press any key pause cd "C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin" ax32.exe -startupCmd=importandcompileaxbuildlog_C:\Program*Files\Microsoft*Dynamics*AX\60\Server\CGI_DAX62_DEVTM2_AOS1\Log pause Do not forget to run it as administrator. The cleaning requires a project installed as described in the second hyper link. Источник: http://alexvoy.blogspot.com/2015/01/...n-ax-2012.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
|
За это сообщение автора поблагодарили: Logger (5), Ace of Database (3). |
21.01.2015, 12:24 | #2 |
Участник
|
Хм... А зачем делать импорт лога компиляции? Где он используется?
|
|
|
За это сообщение автора поблагодарили: Logger (1). |
21.01.2015, 12:42 | #3 |
Участник
|
Быстрая компиляция не всё умеет компилировать: где-то есть описание, что не умеет. Чтобы докомпилировать всё, загружаем этот лог в клиент аксы и там докомпилируем.
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: Logger (3), Kabardian (2). |
21.01.2015, 18:51 | #4 |
Боец
|
Ко всему прочему, для такой компиляции следующий флаг должен быть выключен, иначе ничего не получится
Вложение 9135 Совмещая все нюансы данной компиляции, а также, зачастую, наличие ошибок компиляции после такого подхода, на практике такой подход особо не стоит использовать. Последний раз редактировалось DSPIC; 28.09.2017 в 01:50. |
|
21.01.2015, 23:06 | #5 |
Участник
|
там есть детали по ссылкам. но этот пост я сделал, скорее, в качестве заметки для себя, нежели для публикации в качестве пособия для других.
__________________
Felix nihil admirari |
|
|
За это сообщение автора поблагодарили: AlGol (2), sukhanchik (4), gl00mie (5), Kabardian (2). |
23.01.2015, 22:07 | #6 |
Талантливый разгвоздяй
|
Цитата:
Цитата:
Сообщение от DSPIC
Ко всему прочему, для такой компиляции следующий флаг должен быть выключен, иначе ничего не получится
Вложение 9135 Совмещая все нюансы данной компиляции, а также, зачастую, наличие ошибок компиляции после такого подхода, на практике такой подход особо не стоит использовать. Цитата:
upd: wojzeh, прошу прощения, хотел поблагодарить за пост, а получился минус в карму . Через 3 дня восстановлю справедливость. Последний раз редактировалось Kabardian; 23.01.2015 в 22:11. |
|
24.01.2015, 00:01 | #7 |
Участник
|
Без автоматизации последнего этапа эта комбинация (axbuild + компиляция клиентом по полученному логу ошибок) давно и успешно используется на множестве проектов, в том числе с кастомизациями. Как минимум, CIL после этого собирается без ошибок - а что еще для счастья надо?!
|
|
|
За это сообщение автора поблагодарили: Kabardian (3), Logger (3). |
24.01.2015, 00:32 | #8 |
Талантливый разгвоздяй
|
gl00mie, спасибо за опыт. А сколько времени в среднем занимает такая полная компиляция + CIL на проектах? Понятно, что все зависит от ресурсов и т. п.
|
|
24.01.2015, 12:34 | #9 |
Участник
|
|
|
24.01.2015, 15:15 | #10 |
Участник
|
Если ядер много, то и меньше часа компиляция x++, cil минут 20-40 полный. Сильно зависит от железа, т.е. хорошо масштабируется.
__________________
Ivanhoe as is.. |
|
10.02.2015, 13:04 | #11 |
Талантливый разгвоздяй
|
На виртуальной машине (5GB оперативной, Core i3 4 ядра) установлена AX 2012 R3 CU8, компиляция длилась около 9-10 часов с 6 сессиями и последние 1-2 часа компиляция шла крайне медленно и загрузка CPU снизилась до 0, только SQL грузил процессор на 25%. В итоге, на 4-м проходе, в одной из сессий появилась ошибка:
Цитата:
X++ execution error: Cannot execute a stored procedure. Deadlock, where one or more users have simultaneously locked the whoe table or part of it.
|
|
10.02.2015, 13:48 | #12 |
Талантливый разгвоздяй
|
Запустил по старинке компиляцию АОТ обычными клиентами AX. Запустил 6 клиентов каждый из которых компилирует АОТ по узлам (Tables, Maps, Classes и т. д.), посмотрим как быстро отработает олдскул.
|
|
10.02.2015, 14:30 | #13 |
Участник
|
Цитата:
Цитата:
Сообщение от Kabardian
последние 1-2 часа компиляция шла крайне медленно и загрузка CPU снизилась до 0, только SQL грузил процессор на 25%. В итоге, на 4-м проходе, в одной из сессий появилась ошибка: Cannot execute a stored procedure. Deadlock, where one or more users have simultaneously locked the whoe table or part of it.
SQL Server Trace Flags for Dynamics AX SQL Server Lock Escalation and Blocking В-третьих, надо очень аккуратно рассчитывать число потоков компиляции исходя из доступной памяти. По моим наблюдениям, на 2-м проходе AOS'ы, выполняющие компиляцию, отъедают чуть больше 0.5 Гб private working set, причем чем их меньше, тем больше памяти потребляет каждый. Таким образом, для 6-и потоков должно быть доступно как минимум 3 Гб, а если на виртуалку отведено всего 5, при этом их делят винды, SQL Server и AOS'ы, то нужно явно ограничивать хотелки SQL Server, чтобы 6 AOS'ов могли нормально доработать. Иначе они начнут отваливаться из-за недостатка памяти, AXBuild начнет ругаться, что у него отваливаются "ноги" (legs) и в итоге компиляция преждевременно завершится с ошибкой. В общем, я бы лично попробовал выделить виртуалке, скажем, 6-6.5 Гб из 8-и доступных (если компиляция идет на ноуте с 8 Гб памяти) - хотя бы на время компиляции. |
|
|
За это сообщение автора поблагодарили: Logger (3), alex55 (1), Kabardian (2). |
10.02.2015, 15:31 | #14 |
Талантливый разгвоздяй
|
gl00mie, спасибо за советы по делу, возможно, дело и правда было в памяти для такого количества сессий. Многие из этих рекомендаций были соблюдены: SQL было отведен ровно 1 гигабайт, лишние службы типа SSRS, SSAS отключены. Радикальные меры типа отключения эскалации блокировок не применял.
А сегодня как только обнаружил ошибку с дедлоком я вообразил себя Дэкстером Морганом, вооружился таскменеджером и отпилил нахрен ноги AXbuild одну за другой. После первой отрубленной ноги AXbuild молил о пощаде "LEG failed!", но меня уже было не остановить... |
|
14.06.2018, 17:10 | #15 |
Участник
|
Цитата:
Сообщение от DSPIC
Ко всему прочему, для такой компиляции следующий флаг должен быть выключен, иначе ничего не получится
Вложение 9135 Совмещая все нюансы данной компиляции, а также, зачастую, наличие ошибок компиляции после такого подхода, на практике такой подход особо не стоит использовать. |
|
19.06.2018, 17:55 | #16 |
Боец
|
Цитата:
Но это было давно, может уже пофиксили. |
|
|
За это сообщение автора поблагодарили: Logger (3). |
Теги |
ax2012r3, axbuild.exe, compilation |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|