Обнаружил странное поведение 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, которые я для построения простого примера опустил.