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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.01.2015, 01:14   #1  
Blog bot is offline
Blog bot
Участник
 
20,964 / 715 (65) +++++++
Регистрация: 28.10.2006
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  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,842 / 3747 (182) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от Blog bot Посмотреть сообщение
@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
Хм... А зачем делать импорт лога компиляции? Где он используется?
Старый 21.01.2015, 12:42   #3  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
3,888 / 2002 (74) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Быстрая компиляция не всё умеет компилировать: где-то есть описание, что не умеет. Чтобы докомпилировать всё, загружаем этот лог в клиент аксы и там докомпилируем.
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: Logger (3), Kabardian (2).
Старый 21.01.2015, 18:51   #4  
DSPIC is offline
DSPIC
Боец
Аватар для DSPIC
MCP
Лучший по профессии 2017
Лучший по профессии 2014
Лучший по профессии 2009
 
996 / 1016 (35) ++++++++
Регистрация: 11.04.2008
Адрес: Минск
Ко всему прочему, для такой компиляции следующий флаг должен быть выключен, иначе ничего не получится
Вложение 9135

Совмещая все нюансы данной компиляции, а также, зачастую, наличие ошибок компиляции после такого подхода, на практике такой подход особо не стоит использовать.
__________________
Мой блог

Последний раз редактировалось DSPIC; 28.09.2017 в 01:50.
Старый 21.01.2015, 23:06   #5  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
472 / 221 (8) ++++++
Регистрация: 27.04.2006
Адрес: Montreal
там есть детали по ссылкам. но этот пост я сделал, скорее, в качестве заметки для себя, нежели для публикации в качестве пособия для других.
__________________
Felix nihil admirari
-----------------------------------------------------------------------------------------------
AX2012
За это сообщение автора поблагодарили: AlGol (2), sukhanchik (4), gl00mie (5), Kabardian (2).
Старый 23.01.2015, 22:07   #6  
Kabardian is offline
Kabardian
Талантливый разгвоздяй
Аватар для Kabardian
 
424 / 332 (12) ++++++
Регистрация: 14.12.2008
Адрес: Москва
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Быстрая компиляция не всё умеет компилировать: где-то есть описание, что не умеет. Чтобы докомпилировать всё, загружаем этот лог в клиент аксы и там докомпилируем.
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Ко всему прочему, для такой компиляции следующий флаг должен быть выключен, иначе ничего не получится
Вложение 9135

Совмещая все нюансы данной компиляции, а также, зачастую, наличие ошибок компиляции после такого подхода, на практике такой подход особо не стоит использовать.
Цитата:
Сообщение от wojzeh Посмотреть сообщение
там есть детали по ссылкам. но этот пост я сделал, скорее, в качестве заметки для себя, нежели для публикации в качестве пособия для других.
В сухом остатке. Можно ли быть на 100% уверенным в результате компиляции СТАНДАРТНОГО приложения без кастомизаций, если делать быструю компиляю + импорт лога в клиента и докомпиляцию того что в быстрой компиляции не откомпилировалось?

upd: wojzeh, прошу прощения, хотел поблагодарить за пост, а получился минус в карму . Через 3 дня восстановлю справедливость.

Последний раз редактировалось Kabardian; 23.01.2015 в 22:11.
Старый 24.01.2015, 00:01   #7  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,544 / 4997 (174) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Цитата:
Сообщение от Kabardian Посмотреть сообщение
Можно ли быть на 100% уверенным в результате компиляции СТАНДАРТНОГО приложения без кастомизаций, если делать быструю компиляю + импорт лога в клиента и докомпиляцию того что в быстрой компиляции не откомпилировалось?
Без автоматизации последнего этапа эта комбинация (axbuild + компиляция клиентом по полученному логу ошибок) давно и успешно используется на множестве проектов, в том числе с кастомизациями. Как минимум, CIL после этого собирается без ошибок - а что еще для счастья надо?!
За это сообщение автора поблагодарили: Kabardian (3).
Старый 24.01.2015, 00:32   #8  
Kabardian is offline
Kabardian
Талантливый разгвоздяй
Аватар для Kabardian
 
424 / 332 (12) ++++++
Регистрация: 14.12.2008
Адрес: Москва
gl00mie, спасибо за опыт. А сколько времени в среднем занимает такая полная компиляция + CIL на проектах? Понятно, что все зависит от ресурсов и т. п.
Старый 24.01.2015, 12:34   #9  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,842 / 3747 (182) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от Kabardian Посмотреть сообщение
upd: wojzeh, прошу прощения, хотел поблагодарить за пост, а получился минус в карму . Через 3 дня восстановлю справедливость.
минус исправлен на плюс.
Старый 24.01.2015, 15:15   #10  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
3,888 / 2002 (74) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Если ядер много, то и меньше часа компиляция x++, cil минут 20-40 полный. Сильно зависит от железа, т.е. хорошо масштабируется.
__________________
Ivanhoe as is..
Старый 10.02.2015, 13:04   #11  
Kabardian is offline
Kabardian
Талантливый разгвоздяй
Аватар для Kabardian
 
424 / 332 (12) ++++++
Регистрация: 14.12.2008
Адрес: Москва
На виртуальной машине (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.
Понятно, что блокировки на стороне SQL помешали сделать полную компиляцию. Кто-нибудь сталкивался с таким?
Старый 10.02.2015, 13:48   #12  
Kabardian is offline
Kabardian
Талантливый разгвоздяй
Аватар для Kabardian
 
424 / 332 (12) ++++++
Регистрация: 14.12.2008
Адрес: Москва
Запустил по старинке компиляцию АОТ обычными клиентами AX. Запустил 6 клиентов каждый из которых компилирует АОТ по узлам (Tables, Maps, Classes и т. д.), посмотрим как быстро отработает олдскул.
Старый 10.02.2015, 14:30   #13  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,544 / 4997 (174) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Цитата:
Сообщение от Kabardian Посмотреть сообщение
На виртуальной машине (5GB оперативной) установлена AX 2012 R3 CU8, компиляция длилась около 9-10 часов с 6 сессиями
Памяти маловато для 2012 R3, те же перекрестные ссылки, думаю, могут вообще не построиться.
Цитата:
Сообщение от 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.
Надо оптимизировать использование памяти. Во-первых, может, это и очевидно, но все же: на время компиляции с использованием AXBuild имеет смысл останавливать службу AOS. Она для мгногопоточной компиляции абсолютно не нужна - только память впустую отжирает. Затем надо умерить аппетиты SQL Server, выставив ему maximum server memory в какое-нить вменяемое значение (скажем, 1 Гб), и, вероятно, отключить эскалацию блокировок. Это - опасный шаг, который может приводить к ошибкам при выполнении запросов, если окажется, что для запроса нужна блокировка, а памяти на нее у SQL Server уже не осталось, но в данном случае стоит рискнуть. См. также
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 Гб памяти) - хотя бы на время компиляции.
За это сообщение автора поблагодарили: Kabardian (2), Logger (3), alex55 (1).
Старый 10.02.2015, 15:31   #14  
Kabardian is offline
Kabardian
Талантливый разгвоздяй
Аватар для Kabardian
 
424 / 332 (12) ++++++
Регистрация: 14.12.2008
Адрес: Москва
gl00mie, спасибо за советы по делу, возможно, дело и правда было в памяти для такого количества сессий. Многие из этих рекомендаций были соблюдены: SQL было отведен ровно 1 гигабайт, лишние службы типа SSRS, SSAS отключены. Радикальные меры типа отключения эскалации блокировок не применял.

А сегодня как только обнаружил ошибку с дедлоком я вообразил себя Дэкстером Морганом, вооружился таскменеджером и отпилил нахрен ноги AXbuild одну за другой. После первой отрубленной ноги AXbuild молил о пощаде "LEG failed!", но меня уже было не остановить...
Старый 14.06.2018, 17:10   #15  
Red06 is offline
Red06
Участник
 
33 / 12 (1) ++
Регистрация: 29.09.2005
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Ко всему прочему, для такой компиляции следующий флаг должен быть выключен, иначе ничего не получится
Вложение 9135

Совмещая все нюансы данной компиляции, а также, зачастую, наличие ошибок компиляции после такого подхода, на практике такой подход особо не стоит использовать.
Прошу Вас написать текстом - про какой "флаг" - по ссылке - говорит что вложение отсутствует - спасибо.
Старый 19.06.2018, 17:55   #16  
DSPIC is offline
DSPIC
Боец
Аватар для DSPIC
MCP
Лучший по профессии 2017
Лучший по профессии 2014
Лучший по профессии 2009
 
996 / 1016 (35) ++++++++
Регистрация: 11.04.2008
Адрес: Минск
Цитата:
Сообщение от Red06 Посмотреть сообщение
Прошу Вас написать текстом - про какой "флаг" - по ссылке - говорит что вложение отсутствует - спасибо.
AOS Configuration\Enable the how-swapping for assemblies...
Нажмите на изображение для увеличения
Название: 19.06.png
Просмотров: 145
Размер:	15.9 Кб
ID:	11952

Но это было давно, может уже пофиксили.
__________________
Мой блог
За это сообщение автора поблагодарили: Logger (3).
Теги
ax2012r3, axbuild.exe, compilation

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: AX Performance Troubleshooting Checklist Part 2 Blog bot DAX Blogs 0 09.09.2014 16:11
DAX: A Shift to Effective Demand Forecasting With Microsoft Dynamics AX 2012 R3 Blog bot DAX Blogs 0 16.11.2013 02:13
X++: X++ Arrays Behave Differently in .NET CIL, in Dynamics AX 2012 Blog bot DAX Blogs 0 17.09.2012 23:11
ax-erp: Creating SSRS-Reports in Dynamics AX 2012 – What’s no longer possible in AX-reports Blog bot DAX Blogs 0 18.07.2012 12:11
dynamicsaxtraining: Purchase Blog bot DAX Blogs 0 11.03.2012 05:25
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:07.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.