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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.01.2016, 10:48   #1  
axm2013
Гость
 
n/a
Параллельная разноска журналов ГК DAX 2012. Реально ли?
Хочется разносить параллельно много много журналов. Возникает вопрос делал ли кто такое? Подводные камни есть?. Приветствуются мысли и соображения.
Буду рад узнать.

Последний раз редактировалось axm2013; 20.01.2016 в 10:52.
Старый 20.01.2016, 12:34   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
А в чем подвох? Выделите на форме шапок журналов сразу штук хрендцать и запустите разноску в пакете - она сама распараллелится, это стандартный функционал в AX 2012. Для оптимизации разноски журналы пакуются в "пакеты" (bundles) примерно по 1000 строк суммарно, на каждый "пакет" создается отдельная пакетная задача разноски.

См. также Post multiple journals [AX 2012]

Последний раз редактировалось gl00mie; 20.01.2016 в 12:37.
За это сообщение автора поблагодарили: mazzy (2), Logger (3).
Старый 20.01.2016, 12:51   #3  
axm2013
Гость
 
n/a
А нет подвоха. Есть утверждение некоторых коллег что при попытке распараллелить получили какие-то проблемы и хочется понять насколько реальны эти проблемы.
Старый 20.01.2016, 21:32   #4  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
См. также https://technet.microsoft.com/en-us/.../dn527213.aspx
За это сообщение автора поблагодарили: Logger (3).
Старый 20.01.2016, 23:09   #5  
axm2013
Гость
 
n/a
Давайте на все подряд кидать ссылки?
Вопрос вроде поставлен четко требуется распараллеливание разноски множества журналов ГК - будут ли проблемы? Опыт?
Пока ничего конкретного не увидел по ссылкам
Если не сложно разверните пожалуйста связь между ссылками и вопросами.
Если резко выразился извините но для меня ключевое слово распараллеливание, с целью достичь мега скорости при разноске десятков тысяч жкрналов ГК.

Последний раз редактировалось axm2013; 20.01.2016 в 23:26.
Старый 21.01.2016, 11:07   #6  
russ is offline
russ
Участник
Сотрудники Microsoft Dynamics
 
51 / 33 (2) +++
Регистрация: 02.04.2002
Адрес: Moscow
Если к примеру необходимо разносить амортизацию Основных средств, то проблемы могут быть при неправильной разбивке ОС в разрезе журналов. Амортизация для одного конкретного ОС должна разносится последовательно по дате: сначала за январь, потом февраль и т.д. Если амортизация за январь находится в одном журнале, февраль в другом, при попытке разноски журналов в параллели, получим ошибку в февральском журнале. Такова специфика разноски журналов Основных средств. В других модулях своя специфика, свои проверки.
Старый 21.01.2016, 12:58   #7  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,296 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Ещё одна специфика - на сколько строк разбивать журнал при разноске. Методики точного расчёта данной цифры я не встречал, действовали "методом тыка". По опыту было от 200 до пары тысяч (разносили журналы из примерно 100 тыс строк: 53 тыс ОС * 2 модели учёта и смотрели на время разноски всех журналов).
__________________
Михаил Андреев
https://www.amand.ru
Старый 25.01.2016, 12:54   #8  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Михаил Андреев Посмотреть сообщение
Ещё одна специфика - на сколько строк разбивать журнал при разноске. Методики точного расчёта данной цифры я не встречал, действовали "методом тыка". По опыту было от 200 до пары тысяч (разносили журналы из примерно 100 тыс строк: 53 тыс ОС * 2 модели учёта и смотрели на время разноски всех журналов).
В стандартный код распараллеливания разноски журналов ГК зашита константа в 1000 строк (ограничение на размер bundle'а с одним или несколькими журналами), думаю, это - достаточно хороший ориентир.
За это сообщение автора поблагодарили: Logger (2).
Старый 25.01.2016, 19:32   #9  
axm2013
Гость
 
n/a
Цитата:
Сообщение от gl00mie Посмотреть сообщение
В стандартный код распараллеливания разноски журналов ГК зашита константа в 1000 строк (ограничение на размер bundle'а с одним или несколькими журналами), думаю, это - достаточно хороший ориентир.
Are you sure?
Судя по коду не все так однозначно.
Старый 29.02.2016, 16:33   #10  
Pokersky09 is offline
Pokersky09
Участник
 
43 / 60 (3) ++++
Регистрация: 15.11.2012
Адрес: Turkey
Подводные камни
При разноске необходимо учитывать пределы, которые ограничены SQL сервером:
Кол-во соединений не более 32тыс (далее вылетают аосы).

В классах разноски используются UserConnection, которые генерят дополнительные соединения к SQL, и не всегда они быстро закрываются (отдельная тема, планируется на обсуждение).


Также разноска использует большой ресурс цп SQL, что влияет на производительность приложения и всего остального, при "выкручивании" количества потоков. Мы указывали кол-во потоков в 100, 700, и в конце пробовали в 2000.

На своем опыте, разноска журнала который содержит более 5-10тыс строк происходит заметно дольше, чем разноска более маленьких, но много.

Есть параметр в стнд.функционале, максимальное число строк в журнале, который при разноске предварительно создает новые журналы и перемещает туда строки. Указывал по 500 строк в 1 журнал.

Номерная серия, является таблицей с писсимистич конкуренцией, и обращение к ней может происходить только 1 в один момент времени, что приводит к блокировкам (а те в свою очередь сводят многопоточность по факту в 1 поток).

К примеру, при создании доп журналов используется номерная серия (заранее указывайте макс.значение с запасом), что приводит к блокировкам.

Решением же проблемы с блокировками номерных серий(НС) будет снятие непрерывности, а также активация "предварительного" выделения номеров, что позволит сократить кол-во обращений к НС.

На текущий момент, примерная скорость разноски 50 журналов, включающих примерно 1млн строк в сумме, занимает порядка 6-10 часов.

На текущий момент возникают блокировки на запросах SQL:

Код:
INSERT INTO NUMBERSEQUENCETTS (TRANSID,RECVERSION,PARTITION,RECID) VALUES (@P1,@P2,@P3,@P4)
Также Insert в CustTrans занимает продолжительное время, что приводит к блокировкам.

Решил поделиться своим опытом, обсуждение приветствуется
За это сообщение автора поблагодарили: Ivanhoe (5), gl00mie (3), Kabardian (5).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ax 2012 разноска журнала "Спецификация" в ГК d&m DAX: Функционал 3 13.11.2014 12:03
atinkerersnotebook: Walkthrough & Tutorial Summary Blog bot DAX Blogs 1 09.09.2013 09:11
amer-ax: It was a great day! Blog bot DAX Blogs 3 29.12.2012 01:02
DAX: Official Dynamics AX 2012 R2 Content (update) - Where is it, and how can you find out about updates? Blog bot DAX Blogs 0 03.12.2012 11:11
dynamicsaxtraining: Purchase Blog bot DAX Blogs 0 11.03.2012 05:25

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

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

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