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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.03.2015, 08:51   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Вроде как победил я эту багу. Чего-то определённого найти не удалось. Расчет падал на разных изделиях, на разных окружениях, и даже в разных местах одного и того же повторно запускаемого изделия. Ясно только что падение происходило только на больших изделиях.

Алгоритм расчета условно можно разделить на два этапа.
Первичное построение полного дерева узлов по спецификации изделия.
И последующий обход этого дерева с расчетом и сохранением результата.

Первый этап выполнялся без проблем. Так что никаких циклических ссылок или превышения максимального уровня спецификации не было.
Но вот обход в какой-то непредсказуемый момент рушился. Наступал какой-то критический момент. Не знаю, возможно происходило какое-то некорректное перераспределении памяти этого гигантского дерева.

А дерево действительно гигантское. Там на каждом узле при расчете чего только не сохраняется, включая табличные курсоры. Получается, что вся эта масса рассчитываемых данных, которая в итоге запишется в таблицы расчета в полном объеме будет представлена и в памяти процесса... И я задумался вот над чем. Действительно ли для нужд расчета необходимо одномоментно держать в памяти всё это дерево узлов. Я нашел место в расчете, после которого как мне кажется определенная ветка дерева уже больше не понадобится (когда расчет по ней уже произведен и соответствующие данные - сохранены). Я решил на свой страх и риск принудительно обнулять ссылку на такое поддерево.

В конце метода \Classes\BOMCalcItemLine\recalcBOM
X++:
protected void recalcBOM()
{
    ...

    this.parmChildBOMCalc(NULL); // KSM fix crash memory 11.02.2015
}
И это сработало. Изделие, которое ранее не рассчитывалось - рассчиталось!
Результаты расчета других расчетов совпали (по крайней мере у меня )
За это сообщение автора поблагодарили: Logger (10), gl00mie (5).
Теги
aos, aos crash, bom, crash, баг, производительность, спецификация

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX 2009 (RU5) падает AOS propeller DAX: Администрирование 7 16.06.2015 11:50
Падает AOS vazerdim DAX: Администрирование 8 30.07.2012 12:51
Падает AOS MS DAX 2009 SP1 RU6 Daiver DAX: Администрирование 21 14.02.2011 09:59
Падает AOS _AxDevel_ DAX: Администрирование 3 07.04.2009 11:33
Падает AOS Stella DAX: Администрирование 22 02.04.2008 08:18
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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