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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.01.2006, 14:45   #1  
sta[z] is offline
sta[z]
Участник
 
30 / 11 (1) +
Регистрация: 13.10.2005
Адрес: г. Москва
Проблема с транзакциями
При выполнении следующего кода транзакция вешается намертво.

static void Job1(Args _args)
{
numberSequenceTable numberSequenceTable;
;

ttsbegin;
select forUpdate firstOnly numberSequenceTable
index hint SeriesIdx
where numberSequenceTable.numberSequence == "КЛ_СчФакт";

info("!!!");
ttscommit;
}

Как решать подобные проблемы?
Старый 11.01.2006, 15:09   #2  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Что то не встречал прямого соотсетвия полю- значения. Может попробовать через объявление
переменой str a= КЛ_СчФакт;
Старый 11.01.2006, 15:16   #3  
sta[z] is offline
sta[z]
Участник
 
30 / 11 (1) +
Регистрация: 13.10.2005
Адрес: г. Москва
Дело не в том, что нет такой записи или SELECT не работает. SELECT без ttsbegin/ttscommit/forupdate выполняется. Суть вопроса в том, как отлавливать клинч транзакции.
Старый 11.01.2006, 15:26   #4  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Наверное надо лазить по классам и поставить метку типа info("Прошло нормально")
Ну и смотреть где глючит.
Старый 11.01.2006, 15:31   #5  
sta[z] is offline
sta[z]
Участник
 
30 / 11 (1) +
Регистрация: 13.10.2005
Адрес: г. Москва
Самое интересное, что проходит для любой другой номерной серии. Дубликатов нет, но вешается намертво.
Старый 11.01.2006, 15:35   #6  
sta[z] is offline
sta[z]
Участник
 
30 / 11 (1) +
Регистрация: 13.10.2005
Адрес: г. Москва
Вопрос решился заменой номерной серией. Хотя сам факт ошибки очень интересен, так как в SQL создавалось 2 процесса, которые блокировали друг друга...
Старый 11.02.2008, 19:33   #7  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
:(
У меня, наверное, не точно такая проблема, но уж очень похожая.

Тоже транзакция вешается при выполнении ttscommit. Ctrl-Break не срабатывает. Stack Trace после ttscommit (вторая строчка снизу) показывает следующее.

Код:
[s]    \Classes\NumberSeqCleanUp\cleanUpTrans                                                                 40
[s]    \Classes\NumberSeqDataArea\runCleanup                                                                  75
[s]    \Classes\NumberSeqDataArea\run                                                                          4
[s]    \Classes\NumberSeqGlobal\runAutoClean                                                                  30
[s]    \Classes\NumberSeqGlobal\ttsNotifyBegin                                                                 3
[s]    \Classes\Application\ttsNotifyBegin                                                                     3
[s]    \Classes\Application\createEventCUD                                                                    22
[s]    \Classes\Application\eventUpdate                                                                        5
[s]    \Classes\xRecord\update                                                                                  
[s]    \Data Dictionary\Tables\NumberSequenceList\Methods\update                                              12
[s]    \Classes\NumberSeqCleanUp\cleanUpAborted                                                               19
[s]    \Classes\NumberSeqGlobal\ttsNotifyCommit                                                                3
[s]    \Classes\Application\ttsNotifyCommit                                                                    3
[s]    \Classes\OurClass\ourMethod                                                                            72
[c]    \Classes\FormButtonControl\Clicked                                                                     26
С чем это может быть связано? Как бороться?
Аксапта 4.0.2163.0

Последний раз редактировалось Hyper; 11.02.2008 в 19:44.
Старый 11.02.2008, 22:23   #8  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Аксапта работает с номерными сериями через отдельное подключение к БД. Номер при этом извлекается в отдельной конкурентной транзакции.

Сделано это для того, чтобы таблица номерных серий не блокировалась надолго или даже намертво. Отдельная транзакция маленькая и открывается буквально на время, необходимое для извлечения номера.

Скорее всего, ваш код еще где-то генерирует номер из номерной серии, и в результате сам себя блокирует.
__________________
С уважением,
glibs®
Старый 12.02.2008, 13:46   #9  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
Да, что-то явно блокируется. Примечательно, что попытка обычного удаления одной записи из таблицы NumberSequenceList с NumberSequence == конкретной номерной серии вешает систему. Для остальных номерных серий удаление записей происходит без проблем.
Неясно каким образом продолжать анализировать эту проблему без рестарта AOS, т.к. любое действие приводит к зависанию клиента... А постоянно рестартовать AOS то еще развлечение.
Теги
ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема с поиском в InventTrans после changeCompany (DAX4) Raven Melancholic DAX: Программирование 11 13.03.2008 14:02
Проблема с кэшированием в Аксапте snirk DAX: Администрирование 9 19.07.2007 18:23
Проблема с единицей измерения longson DAX: Программирование 4 16.07.2007 14:35
Проблема с созданием объекта Lelya DAX: Администрирование 33 27.06.2005 16:38
Проблема: русские шрифты в отчетах, формируемых на сервере. Anais DAX: Администрирование 3 17.11.2003 13:20

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

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

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