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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.09.2009, 12:23   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,983 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Helm Посмотреть сообщение
Место-то я нашёл. Вопросы классические отечественные: что делать и кто виноват
Проблема как бы разбиралась, но не до конца... причём в одном топике всё закончилось на посте с аналогичной ситуацией.
Ну если нашли место то здесь в комментариях
Блокировка NumberSequence
к исправлениям в коде, пояснен принцип исправлений.

Я думаю у вас нечто схожее.

Т.е. основным соединением, в котором идут транзакции, выбираются forupdate записи из numberSequenceTable и прочих таблиц. А нужно использовать вновь открываемое соединение к базе, тогда эта таблица надолго блокироваться не будет и не будет блокировок и тупиковых ситуаций.
Старый 25.09.2009, 13:24   #2  
Helm is offline
Helm
Участник
 
15 / 11 (1) +
Регистрация: 24.09.2009
Я извиняюсь за нупский вопрос, но как алгоритмически это сделать? Я просто раньше не сталкивался толком с UserConnect, да и полугодовой перерыв в работе даёт знать, к сожалению.

Вcё происходит в классе NumberSeqCleanUp
В методе ран создаёт(только создаются) user connection, далее в нём просто вызывается
X++:
this.cleanUpSequence(userConnection,numberSequenceTableClean);
В самом cleanUpSequence делается
X++:
userConnection.ttsbegin();
numberSequenceTableUpd.setConnection(userConnection);

select forupdate firstonly numberSequenceTableUpd
index hint SeriesIdx
where numberSequenceTableUpd.numberSequence == _numberSequenceTable.numberSequence;
На этом селекте зависает. Дальше идут ещё обращения к другим методам с использованием всё того же UserConnection из run, но это дело десятое, если тут понять.

В примере с Release всё понятно, там были просто ttsbegin-commit и добавлялся connection внутрь их. А здесь как-то неясно мне, подскажите, пожалуйста!
Старый 25.09.2009, 13:58   #3  
Helm is offline
Helm
Участник
 
15 / 11 (1) +
Регистрация: 24.09.2009
Ещё выяснилась подробность, что оказывается это не в первый раз, а уже бывало когда-то. И тогда лечилось брутфорсом в виде 20-30-кратного создания заказа, пока не удавалось провести разноску. Что только подтверждает данный баг... но конечно так лечить каждый раз не айс
Теги
блокировка, разноска, number sequence

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
блокировки таблицы WMTRANSFER_FACTUREJOUR. ipas DAX: Администрирование 0 29.09.2008 15:20
Ax 4.0. Главная книга.План Счетов. Счет. Разноска. Тип разноски nmariya DAX: Функционал 2 30.10.2007 13:19
Сопоставление с разными профилями разноски и одинаковой валютой операции Red Stranger DAX: Функционал 13 27.06.2006 18:40
Вопрос по профилям разноски ОС treeny DAX: Функционал 2 20.05.2005 16:02
Профиль разноски по Договрам AlexR DAX: Функционал 8 06.04.2005 17:06

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

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

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