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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.04.2011, 13:38   #1  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1235 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от Logger Посмотреть сообщение
Очень странно.
Прямо барабашка.
А не может быть так что эта табличка уже открыта в обозревателе таблиц или в формочке из под вас же и в силу каких-то причин запись на форме сохраняется (бред конечно, но все же)...
Неее, никто таблицу не юзает, никто

Цитата:
Сообщение от Logger Посмотреть сообщение
Кстати, недавно ковырялся по системным табличкам Аксапты и где-то попадался параметр, судя по названию, отвечающий за значение параметра OCC enabled по умолчанию. Может попробовать выключить. По крайней мере если заблокируется система, то увидите кто кого и когда и почему.
Да, если отключить OCC для этой таблички, то конфликтов не возникает. Можно, конечно, отключить и глобально, но это это не наш метод.
В общем глючит именно OCC, а вот почему - предстоит разобраться, что-то ей мешает. Места достаточно на всех дисках.
Цитата:
Еще вариант - может сиквел глючит в режиме Snapshot isolation - вы посмотрите там все порядке - места в темпах достаточно ? Не переполнились ?
Может, а как проверить?
Старый 17.04.2013, 11:34   #2  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от DSPIC Посмотреть сообщение
В общем глючит именно OCC, а вот почему - предстоит разобраться, что-то ей мешает
С триггерами \ хранимыми процедурами с SET NOCOUNT ON баловались ? Если забыли где-то его вернуть в нормальное (для AX - OFF) состояние, в этой сессии при попытке UPDATE .. WHERE RECID = %X and RECVERSION = %Y ядро не увидит искомого '1 record affected' и решит что это конфликт OCC
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: Kabardian (5), dim-gin (1).
Старый 21.01.2021, 15:14   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,889 / 3165 (113) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Vadik Посмотреть сообщение
С триггерами \ хранимыми процедурами с SET NOCOUNT ON баловались ? Если забыли где-то его вернуть в нормальное (для AX - OFF) состояние, в этой сессии при попытке UPDATE .. WHERE RECID = %X and RECVERSION = %Y ядро не увидит искомого '1 record affected' и решит что это конфликт OCC
Vadik, а вы уверены что именно NoCount может так гадить ?

Вот тут
https://www.sql.ru/forum/1332703/kak...zvolnoy-sessii
утверждают, что при выходе из хранимки свойство должно восстанавливаться. Т.е. не должна хранимка смочь что либо испортить в сессии.

P.S. Надо будет контрольный пример сбацать и проверить.
Старый 21.01.2021, 22:03   #4  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Logger Посмотреть сообщение
Vadik, а вы уверены что именно NoCount может так гадить ?
да, уверен

Цитата:
Вот тут
https://www.sql.ru/forum/1332703/kak...zvolnoy-sessii
утверждают, что при выходе из хранимки свойство должно восстанавливаться. Т.е. не должна хранимка смочь что либо испортить в сессии.

P.S. Надо будет контрольный пример сбацать и проверить
я по-быстрому проверил на SQL Server 2019, на нем изменение переменных сессии откатывается

X++:
use tempdb
go

set nocount off
go

select count(*) from sys.objects
go

create procedure myProc as begin
	set nocount on;

	-- do something
end
go

execute myProc
go

drop procedure myProc;
go

select count(*) from sys.objects
go
результат

Цитата:
-----------
100
(1 row affected)

-----------
100
(1 row affected)
с документацией согласуется

Цитата:
If a SET statement runs in a stored procedure or trigger, the value of the SET option gets restored after the stored procedure or trigger returns control. Also, if you specify a SET statement in a dynamic SQL string that runs by using either sp_executesql or EXECUTE, the value of the SET option gets restored after control returns from the batch that you specified in the dynamic SQL string
быстро проверить на более ранних версиях SQL Server времени нет, увы

на AX2012, при возможности проверю. T-SQL c NOCOUNT из X++ должен валиться

P.S. подчеркнутое расходится с
Цитата:
if you specify a SET statement in a dynamic SQL string that runs by using either sp_executesql or EXECUTE, the value of the SET option gets restored after control returns from the batch that you specified in the dynamic SQL string
непонятно. похоже не было раньше такого поведения
__________________
-ТСЯ или -ТЬСЯ ?

Последний раз редактировалось Vadik; 21.01.2021 в 23:22.
За это сообщение автора поблагодарили: Logger (10).
Старый 22.01.2021, 11:09   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,889 / 3165 (113) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Vadik Посмотреть сообщение
непонятно. похоже не было раньше такого поведения
Вот и мне показалось странным.
Старый 22.01.2021, 11:17   #6  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Может кто-то прогнать скрипт на старых версиях SQL Server (2005, 2008б 2012) ? Он безобидный
__________________
-ТСЯ или -ТЬСЯ ?
Старый 22.01.2021, 11:53   #7  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,160 / 1289 (47) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Vadik Посмотреть сообщение
Может кто-то прогнать скрипт на старых версиях SQL Server (2005, 2008б 2012) ? Он безобидный
2008R2:
Цитата:
(строк обработано: 1)

(строк обработано: 1)
2016:
Цитата:
(затронута одна строка)

(затронута одна строка)
Но тут непонятно "чистый" ли эксперимент.
Могу ошибаться, но не исключено, что команда GO в окне Mangement studio сама по себе может сбрасывать какие-то переменные. Объявленные там же при помощи declare точно разные в разных секциях до GO.
За это сообщение автора поблагодарили: Vadik (1).
Теги
ax2009, ax2012, ax2012r2, occ, sysclientsessions, ошибка, хранимые процедуры

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка при работе с binary в Ax2009 someOne DAX: Программирование 2 08.11.2010 10:04
ax2009: кто юзал Startup command: CompileAll_+ для периодического обновления перекрестных ссылок? mazzy DAX: Администрирование 11 25.08.2010 08:50
Ошибка при установке корпоративного портала ax2009, ошибка доступа Antant DAX: Администрирование 0 11.09.2009 09:28
Ошибка при передаче курсора для обновления с клиента на сервер vallys DAX: Программирование 4 03.07.2007 13:32
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:03.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.