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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.01.2007, 16:30   #1  
Andrew K. is offline
Andrew K.
Участник
 
29 / 12 (1) ++
Регистрация: 02.12.2004
Адрес: Minsk
Цитата:
Сообщение от Perc Посмотреть сообщение
Про "начало" и "конец" транзакции в стандарте - так там и есть на самом деле все в обычном понимании стандартно. В классе ReqCalc:
ttsbegin;
this.insertData();
...
ttscommit;
В функции insertData() и очистка ReqTrans и RecTransCov присутсвует в прямом виде.
А отдельная сессия есть в этом классе, но она имхо ничего кроме блокировки записи в таблице планов не делает вообще:
connectionLock = new UserConnection();
connectionLock.ttsbegin();
reqPlanLock.setConnection(connectionLock);
select forupdate reqPlanLock
where reqPlanLock.reqPlanId == reqPlanId;
Видимо это просто способ запрета паралельного запуска того же расчета с другого места всего лишь.
В классе ReqCalc есть this.ttsbegin() и this.ttscommit(), что не имеет ничего общего с ttsbegin / ttscommit, блокирующих текущую сессию. Иначе сильно распухнет лог и производительность упадет. Т.е. полный пересчет выполняется без блокировок. Как видно,
connectionLock = new UserConnection();
connectionLock.ttsbegin();
reqPlanLock.setConnection(connectionLock);
select forupdate reqPlanLock where reqPlanLock.reqPlanId == reqPlanId;
...
блокируют всего 1 таблицу reqPlan, и действительно для того чтобы остальные "желающие" подождали. Так как же у вас сделано? Полностью стандарт или что то дописали?
Старый 25.01.2007, 05:59   #2  
Perc is offline
Perc
Участник
 
194 / 57 (2) ++++
Регистрация: 05.03.2005
this.ttsbegin() и this.ttscommit() к начальной теме вопроса:
Начало транзакции;
Очистить прогнозный план запущеный на расчет;
Рассчитать прогнозный план;
Конец транзакции;
не имеют никакого отношения. Они в паралельной сессии блокируют/отпускают запись единственную. Все. Я имел ввиду код в методе UpdateData класса ReqCalc:
ttsbegin;
this.insertData();
...
ttscommit;
Этот код у меня на слое sys, и ttsbegin; ttscommit; там самые обыкновенные, а метод insertData() чистит план и выполняет часть расчета плана - запоняет ReqTrans.
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Планирование номенклатуры с типом Основное средство AlexeyBP DAX: Функционал 19 29.01.2009 07:42
Прогнозное планирование Nik_Nik DAX: Функционал 4 10.02.2006 12:49
Планирование производственных операций Vikp DAX: Функционал 4 10.01.2006 15:43
И снова про Сводное планирование costa DAX: Функционал 2 04.05.2005 21:24
Прогнозное и сводное планирование hie DAX: Функционал 0 03.04.2003 06:44

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

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

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