Показать сообщение отдельно
Старый 16.05.2009, 20:00   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,873 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Странное поведение ttsAbort
Обнаружил странное поведение ttsAbort в Ax 3.0 KR3

Если начать транзакцию, а внутри неё открыть цикл while select, то при вызове ttsAbort цикл клинит и начинает приходить одна и та же запись. Для SQL server 2000 такое всегда воспроизводится. Для Оракл 10 только при выполнении кода на сервере.

Прилагаю класс для воспроизведения бага.

Для оракла у меня выдал
Цитата:
Tier Client
ItemID = 01134249
ItemID = 01134250
ItemID = 01134251 !!! Внимание !!!
ItemID = 011342520 !!! Внимание !!!
ItemID = 01134255 !!! Внимание !!!
откатили

Tier Server
ItemID = 01134249
ItemID = 01134250
ItemID = 01134249 !!! Внимание !!!
ItemID = 01134249 !!! Внимание !!!
ItemID = 01134249 !!! Внимание !!!
откатили
для SQL 2000

Цитата:
Tier Client
ItemID = 1
ItemID = 2
ItemID = 1 !!! Внимание !!!
ItemID = 1 !!! Внимание !!!
ItemID = 1 !!! Внимание !!!
откатили

Tier Client
ItemID = 1
ItemID = 2
ItemID = 1 !!! Внимание !!!
ItemID = 1 !!! Внимание !!!
ItemID = 1 !!! Внимание !!!
откатили
(для сиквела номенклатуры были "1", "2", "3", ...)

P.S. В рабочей базе для оракла видел также случай когда приходит не одна и та же запись, а просто цикл начинает повторение с самого начала, но простой пример для воспроизведения бага с повторением всего цикла построить не удалось. - Возможно в рабочей базе повлияли дополнительные обращения к базе и ttsBegin - commit, которые я для построения простого примера опустил.
Вложения
Тип файла: xpo GRD_TestTtsAbort.xpo (2.6 Кб, 358 просмотров)
За это сообщение автора поблагодарили: ZVV (2), gl00mie (5).