AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
NAV
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.02.2014, 20:36   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от Vadik Посмотреть сообщение
Варианты
  • Есть обработка дубликатов в catch секции
  • Код вырван из контекста (приведен не полностью)
  • Действительно ерунда

Так как SERIALIZABLE уровень изоляции не используется, даже при использовании конструкций вида

X++:
ttsbegin;

if (exists())
{
    doSomethingBeforeUpdate();
    update();
}
else
{    
    doSomethingBeforeInsert();
    insert();
}

ttscommit;
в Create / Update сценарии в принципе не исключен вариант создания дубликата другим процесом во время doSomethingBeforeInsert(), так что в следуюший retry блок пойдет по "правильной" (update) ветке. Ну а если количество таких "промахов" превышает пороговое значение (в этом случае - 5) - наверное есть какие-то проблемы с логикой и пора признаться - "не шмогла". Как-то так
Кстати там именно такого плана код был, насколько мне сказали сегодня. (код не мой, я просто разместил объяву )
Теги
axapta, cil, d365fo, guid, rasset, uuid, uuidv7, баг

 


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:28.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.