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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.05.2009, 20:00   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 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 Кб, 361 просмотров)
За это сообщение автора поблагодарили: ZVV (2), gl00mie (5).
Старый 18.05.2009, 17:39   #2  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
В двухзвенке на оракле тоже воспроизводится...
__________________
Zhirenkov Vitaly
Старый 19.05.2009, 12:10   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от ZVV Посмотреть сообщение
В двухзвенке на оракле тоже воспроизводится...
В трешке ?
Старый 19.05.2009, 16:14   #4  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Logger Посмотреть сообщение
В трешке ?
Да, Ax3.0 SP3 KR3
__________________
Zhirenkov Vitaly
Старый 28.05.2009, 12:30   #5  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
А это вообще реальный сценарий? Я что-то не могу себе представить, где такая жесть может использваться
Старый 28.05.2009, 14:24   #6  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от kashperuk Посмотреть сообщение
А это вообще реальный сценарий? Я что-то не могу себе представить, где такая жесть может использваться
Мне встретилось в нашей рабочей базе. Очень неприятный эффект. Получился бесконечный цикл. Не такой уж изврат по-моему.

Кстати в последних билдах воспроизводится ?

P.S. Помнится, в Best Practice была рекомендация не использовать ttsAbort, а вместо него применять лучше throw но не объяснялось почему. Возможно автор рекомендации знал о такой особенности ядра.
Старый 28.05.2009, 15:11   #7  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Воспроизводиться по-своему
на третьей итерации возвращается первая номенклатура, как и у Вас
А на четвертой итерации падает с exception при попытке открытия транзакции.
Теги
bp, throw, ttsabort, баг, ядро, ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Странное поведение отчетов Lucky13 DAX: Программирование 0 24.09.2007 12:53
Объясните странное поведение enum'ов Deep Dreamer DAX: Программирование 6 09.04.2007 23:44
Странное поведение импорта из CSV файла Lemming DAX: Программирование 3 25.02.2005 15:26
Странное поведение резервирования после создания спланированной закупки. NEO DAX: Функционал 7 01.07.2004 14:03
странное поведение while-next с исключениями Omeo DAX: Программирование 2 19.05.2004 12:33
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:12.