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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.07.2008, 18:14   #1  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,340 / 3558 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Все очень даже логично. Первый - создает журнал. Другой его разносит. В обоих случаях выбирается номерная серия (хотя насколько я понимаю - не всякие складские журналы при разноске генерят номерную серию - или я неправ?). У нас то были финансовые журналы - а там при разноске всегда генерится что-то новое (ну хотя бы пакет корреспонденции).
Т.о. 1-я проводка взяла новый номер и дальше ей нужно сдвинуть счетчик (сделать select forupdate numbersequencetable). Все вроде ничего... Но массовая разноска делалась что логично - в блоке ttsbegin/ttscommit.
Как известно - независимо от уровней вложенности ttsbegin/ttscommit все выполняется в одной транзакции. Соответственно - в тот момент, когда все думали - что уже в БД все записалось (ttscommit стоит) - в БД ничего не записалось - т.к. это был вложенный ttscommit. Получается, что система ждет завершения последнего ttscommit.
Но последний ttscommit стоит ЗА циклом по разноске (мы же хотим все "оптом" разнести - типа либо все либо ничего). Соответственно - следующая итерация ждет завершения первой. Блокировка.
Вывод. Нужно выделять номера пачками - чтобы система не "лезла" каждый раз бы в БД - чтобы цикл отработал весь - до выделения следующего номера.
__________________
Возможно сделать все. Вопрос времени
Теги
deadlock, блокировка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Несколько вопросов по Проектам Посторонний V DAX: Функционал 2 20.10.2005 06:59
несколько Repot-ов и один class(RunBaseReport) bagyr DAX: Программирование 4 08.07.2005 14:58
Несколько || процессов в Axapta Patriot DAX: Программирование 2 29.10.2002 17:02
Пример DeadLock Maxim Gorbunov DAX: База знаний и проекты 0 06.12.2001 20:00
DeadLock Maxim Gorbunov DAX: База знаний и проекты 0 03.12.2001 20:16
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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