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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.03.2021, 17:43   #1  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
? Зачем аксапта [3 - 2009] использует отдельное соединение для выделения непрерывной номерной серии?
Сабж, аксапты у меня нет, но по памяти помню что это так. Причем в бизнес-логике все это обернуто в транзакцию и непрерывную номерную серию не выделить с уровнем транзакции 0 (идет проверка appl.ttslevel или что-то вроде). Так вот вопрос: для чего это так создано?
Старый 02.03.2021, 18:48   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Иначе номерная серия будет узким место при блокировке - все транзакци будут ждать завернешия первой, которая заблокировала НС. Ну или будут часто фейлиться при оптимистичной блокировке.
За это сообщение автора поблагодарили: Lemming (12).
Старый 02.03.2021, 18:49   #3  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,909 / 5730 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Потому что номерная серия используется многими пользователями, и если бы она обновлялась в рамках основной сессии (и основной транзакции), то запись бы блокировалась до окончания основной транзакции. (которая вполне может минут 10-15 длиться в тяжелом случае).
А проверка уровня транзакции 0, она с другим механизмом связана, с механизмом непрерывных номерных серий. Там кроме самой серии ведется табличка с выделенными номерами. Когда номер выделяется, он в это табличке помечается как Нерешенный. (поскольку до окончания основной транзакции невозможно сказать, будет этот номер использован или нет). В момент окончания или отката основной транзакции, запускается обработчик, который эти номера помечает как использованные или неиспользованные. Когда система пытается выделить новый номер, прежде чем увеличивать основной счетчик, система ищет в табличке уже выделенных значений, строки помеченные как Свободный.
Там еще есть механизм, который позволяет непрерывными номерными сериями пользоваться не из транзакции. Можно просто выделить номер и позже его через API пометить как используемый или неиспользуемый....
За это сообщение автора поблагодарили: Lemming (12).
Теги
номерная серия

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
semanticax: Dynamics AX 2009 Installation - Application Blog bot DAX Blogs 0 22.12.2010 08:11
Переход (upgrade) Аксапта с версии 3 на Ax 2009 Evgeniy2020 DAX: Администрирование 4 15.07.2010 09:10
emeadaxsupport: List of fixes that improve performance of certain features in Dynamics AX 2009 Blog bot DAX Blogs 0 13.10.2009 19:06
За и против использования суфикс/префикс в номерной серии dreshkov DAX: Функционал 18 12.11.2004 16:13
закрытие склада по номенклатуре типа услуга - зачем? (аксапта) Елена Сысовская DAX: Функционал 30 01.02.2004 23:36

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

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

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