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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.08.2021, 23:28   #1  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
396 / 478 (16) +++++++
Регистрация: 27.02.2006
Адрес: Дания
Цитата:
Сообщение от alicedr Посмотреть сообщение
Logger: Спасибо за идею, у меня тоже была такая, но, к сожалению, реализовать такое невозможно в данном случае.
А почему невозможно-то?

В крайнем случае сделайте две идентичных таблицы, А и Б. Запись-пустышку пишите в А и отправляйте запрос во внешнюю систему. После получения ответа вставляйте полную запись в Б и удаляйте старую запись из А одной транзакцией. Если нужно видеть все записи в одном гриде, сделайте вьюху типа Union.

Другой вариант - при апдейтах каждому из восьми процессов назначить свой диапазон обработки. Скажем, если первое поле в первичном ключе содержит ItemId, и все ItemId в системе начинаются с цифры, то первому процессу назначить «0*», второму «1*» или «1*, 2*» и т.д.
Старый 06.08.2021, 21:45   #2  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Цитата:
Сообщение от Stitch_MS Посмотреть сообщение
А почему невозможно-то?

После получения ответа вставляйте полную запись в Б и удаляйте старую запись из А одной транзакцией.
.
При таком количестве потоков удаление будет провоцировать новые дедлоки. Но сама идея очень хорошая и у меня уже есть идеи где ее использовать )))

На самом деле проблема уже решена - мое предположение заменить кластерный индекс на некластерный сработало - за три дня не было ни одного дедлока при постоянном очень интенсивном тестинге.
За это сообщение автора поблагодарили: Vadik (1).
Старый 08.08.2021, 13:39   #3  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от alicedr Посмотреть сообщение
На самом деле проблема уже решена - мое предположение заменить кластерный индекс на некластерный сработало
Кластерный индекс был составной или состоял из одного поля? RecId, Guid, номерная серия в FO, еще что-то ? Если составной, были ли при обработке изменения в ключевых полях ?
__________________
-ТСЯ или -ТЬСЯ ?
Старый 09.08.2021, 20:56   #4  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Цитата:
Сообщение от Vadik Посмотреть сообщение
Кластерный индекс был составной или состоял из одного поля? RecId, Guid, номерная серия в FO, еще что-то ? Если составной, были ли при обработке изменения в ключевых полях ?
Одно поле. transId. Никакх изменений, кроме clustered -> non-clustered
Теги
d365fo, deadlock

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ODBCConnection и обработка deadlock abark DAX: Программирование 7 12.02.2016 13:37
dynamicsaxtraining: What is Lock, Deadlock in Dynamics AX Blog bot DAX Blogs 0 02.06.2015 13:11
DeadLock. Один сеанс - несколько процессов. Владимир Максимов DAX: Программирование 20 12.07.2008 11: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, время: 08:55.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.