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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.12.2013, 12:17   #21  
Just_smile is offline
Just_smile
Участник
Axapta Retail User
 
41 / 29 (1) +++
Регистрация: 28.10.2008
В нашем случае обновление АОСов до RU8 не помогло, не смотря на то что в списке hotfix'ов было:
Data cache is not always synching between clustered AOSes - update conflicts on SysLastValue EntireTableCache record .


В нашем случае выяснилось, что есть несколько хранимых процедур, у которых включается параметр NOCOUNT в ON без выключения в конце процедуры. (то о чем писал Vadik выше.)


Сначала мы не придали этому совету внимания, но когда идеи кончились решили попробовать и это. Кривые хранимки нашли запросом:
X++:
select OBJECT_NAME(Object_Id),*
from sys.dm_exec_procedure_stats
where Object_Id in (
select Object_Id
from sys.sql_modules (nolock)
where definition like '%set nocount on%' and definition not like '%set nocount off%'
)
order by last_execution_time desc

P.S. Также была найдена след. информация на иностранном форуме:
https://community.dynamics.com/ax/f/33/t/69323.aspx


За это сообщение автора поблагодарили: Logger (10), gl00mie (10).
Старый 21.01.2021, 15:14   #22  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,940 / 3229 (115) ++++++++++
Регистрация: 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   #23  
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   #24  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,940 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Vadik Посмотреть сообщение
непонятно. похоже не было раньше такого поведения
Вот и мне показалось странным.
Старый 22.01.2021, 11:17   #25  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Может кто-то прогнать скрипт на старых версиях SQL Server (2005, 2008б 2012) ? Он безобидный
__________________
-ТСЯ или -ТЬСЯ ?
Старый 22.01.2021, 11:53   #26  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Vadik Посмотреть сообщение
Может кто-то прогнать скрипт на старых версиях SQL Server (2005, 2008б 2012) ? Он безобидный
2008R2:
Цитата:
(строк обработано: 1)

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

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