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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.08.2009, 11:48   #1  
Atani is offline
Atani
Участник
 
76 / 15 (1) ++
Регистрация: 25.07.2003
Адрес: г. Королёв М.О.
Постоянное пересоздание триггера на SYSDATABASELOG
Всем добрый день!

Возникла следующая проблема.
Идёт внедрение. Несмотря на административные меры (регламент выставления обновлений - не в рабочее время) частенько приходится делать оперативные обновления в боевом приложении в рабочее время. При обновлении приложения (и, похоже, даже при попытке сравнения объектов) идёт синхронизация таблиц, и появляются блокировки в MS SQL.

Обнаружили, что во время сравнения и импорта объектов вызывается \Classes\SysSQLInitDBTriggers\checkAndCreateTriggers_MSSQL, который пытается удалить и создать заново триггер на таблице SYSDATABASELOG.

На очень многих таблицах настроен Журнал базы данных, и, видимо, из-за этой операции происходят блокировки.

Основная цель: убрать возникающие блокировки.

Интересно, что если система находит триггер, она его всё равно удаляет и создаёт заново. Зачем?
Сейчас я предполагаю внести модификацию, чтобы при нахождении триггера система не пересоздавала его

Вопрос: правильным ли я иду путём? Как правильно?

Скрипт триггера:
X++:
ALTER trigger [dbo].[onSYSDATABASELOGinsert] on [dbo].[SYSDATABASELOG] FOR INSERT AS 
update t set createddate = convert(datetime, convert( varchar(10), getdate(), 102), 102), createdtime = datediff( ss, convert(datetime, convert( varchar(10), getdate(), 102), 102), getdate()) 
from DBO.SYSDATABASELOG as t 
inner join inserted as s on t.dataareaid = s.dataareaid and t.recid = s.recid
Стек вызовов:
\Classes\SysSQLInitDBTriggers\checkAndCreateTriggers_MSSQL
\Classes\SysSQLInitDBTriggers\checkExistsDBTriggers
\Classes\Application\dbSynchronize

AX4.0 SP2,
MS SQL 2005 (9.00.4035.00)
Старый 26.08.2009, 13:10   #2  
fed is offline
fed
Moderator
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Ex AND Project
Соотечественники
 
2,089 / 3868 (133) ++++++++++
Регистрация: 13.03.2002
Адрес: İstanbul
Я когда-то разбирался с аналогичной проблемой для турецкого клиента Насколько я помню - в конце концов была создана и эскалирована ошибка. Чем кончилось - не знаю, поскольку вскоре ушел из MS. Вообще у меня есть СИЛЬНЕЙШЕЕ подозрение что вся эта штука нужна в 4ке только в случае использования функциональности life science и sysSign. Типа эта функциональность позволяет реализовать понятие цифровой подписи для изменения записи, а заполнение createdDate данными с сервера БД позволяет отвязать дату от того значения которое пользователь выставил в клиенте Аксапты.

В общем - я бы просто тупо отключил создание и удаление этого триггера из application.dbSynchronize(). Мне что-то трудно представить себе чтобы это кому-нибудь было бы нужно. Да и кстати механизм SysSign стал более или менее живым только начиная с версии 2009.
За это сообщение автора поблагодарили: alex55 (2).
Старый 01.11.2016, 13:53   #3  
alex55 is offline
alex55
MCTS
MCBMSS
 
210 / 137 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
А с чем вообще связана необходимость запуска синхронизации перед сравнением объектов в диалоге импорта?
Теги
ax4.0, sql 2005, sysdatabaselog, полезное, триггер, электронная подпись, блокировка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Пересоздание таблицы при синхронизации Serg16 DAX: Администрирование 1 26.08.2009 13:55
Постоянное обновление jeky DAX: Программирование 3 26.03.2009 16:46
Ax 4.0 - ошибка в SysDatabaseLog.setDescription() Bishop DAX: База знаний и проекты 0 28.07.2008 18:15
SysDataBaseLog bagyr DAX: База знаний и проекты 2 24.06.2005 16:14
что - то типа триггера Surok DAX: Программирование 1 23.09.2002 12:04
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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