16.05.2009, 20:00 | #1 |
Участник
|
Странное поведение 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 !!! Внимание !!! откатили Цитата:
Tier Client
ItemID = 1 ItemID = 2 ItemID = 1 !!! Внимание !!! ItemID = 1 !!! Внимание !!! ItemID = 1 !!! Внимание !!! откатили Tier Client ItemID = 1 ItemID = 2 ItemID = 1 !!! Внимание !!! ItemID = 1 !!! Внимание !!! ItemID = 1 !!! Внимание !!! откатили P.S. В рабочей базе для оракла видел также случай когда приходит не одна и та же запись, а просто цикл начинает повторение с самого начала, но простой пример для воспроизведения бага с повторением всего цикла построить не удалось. - Возможно в рабочей базе повлияли дополнительные обращения к базе и ttsBegin - commit, которые я для построения простого примера опустил. |
|
|
За это сообщение автора поблагодарили: ZVV (2), gl00mie (5). |
18.05.2009, 17:39 | #2 |
MCITP
|
В двухзвенке на оракле тоже воспроизводится...
__________________
Zhirenkov Vitaly |
|
19.05.2009, 12:10 | #3 |
Участник
|
|
|
19.05.2009, 16:14 | #4 |
MCITP
|
__________________
Zhirenkov Vitaly |
|
28.05.2009, 12:30 | #5 |
Участник
|
А это вообще реальный сценарий? Я что-то не могу себе представить, где такая жесть может использваться
|
|
28.05.2009, 14:24 | #6 |
Участник
|
Цитата:
Кстати в последних билдах воспроизводится ? P.S. Помнится, в Best Practice была рекомендация не использовать ttsAbort, а вместо него применять лучше throw но не объяснялось почему. Возможно автор рекомендации знал о такой особенности ядра. |
|
28.05.2009, 15:11 | #7 |
Участник
|
Воспроизводиться по-своему
на третьей итерации возвращается первая номенклатура, как и у Вас А на четвертой итерации падает с exception при попытке открытия транзакции. |
|
Теги |
bp, throw, ttsabort, баг, ядро, ax3.0 |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|