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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.09.2016, 08:45   #1  
Pandasama is offline
Pandasama
Участник
 
449 / 133 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Внезапная! синхронизация в Ax 2012
Товарищи, возможно кто-нибудь сталкивался в Ax2012 со следующей проблемой.
При небольшой рутинной разработке, например:
1 Создаем EDT
2 Меняем в нем какие-нибудь параметры (длину строки, например)
3 Сохраняем
Как результат иногда получаем - без запроса! - полную синхронизацию всего (хотя этот ЕДТ и не используется нигде и вообще только что создан) минут на 20-30. Рабочий процесс – встает.

Может быть кто-то знает, как с этим бороться превентивно и как наиболее безопасно бороться, если синхронизация уже пошла (убивать клиент с активной синхронизацией как-то боязно).
Старый 12.09.2016, 08:54   #2  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от Pandasama Посмотреть сообщение
Товарищи, возможно кто-нибудь сталкивался в Ax2012 со следующей проблемой.
Да, обычное неудобство. Обсуждалось и на форуме и на прочих ресурсах. Попробуй google спросить
__________________
Isn't it nice when things just work?
Старый 12.09.2016, 09:46   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
В 2009-й часто еще помогало
X++:
New SQLSyncPending().databaseTouched(false);
После этого аксапта "забывает" об изменениях в словаре и не пытается делать синхронизацию. Возможно в 2012-й тоже сработает.
За это сообщение автора поблагодарили: mazzy (2), AlexSD (3), alex55 (1), DSPIC (5), Pandasama (1).
Старый 12.09.2016, 09:47   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
ну, не стоит уж сразу в гугл посылать.

да, вопрос обсуждался.
да, есть доводы за данную фичу, есть и против.

чтобы отключить автосинхронизацию,
создайте job, который будет создавать объект SqlSyncPending и запускать метод
SqlSyncPending.databaseTouched(false)

но вы должны четко понимать что делаете и следить за синхронизацией вручную.
обязательно доведите изменения в политике до всех разработчиков.
Старый 12.09.2016, 10:01   #5  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от Logger Посмотреть сообщение
В 2009-й часто еще помогало
X++:
New SQLSyncPending().databaseTouched(false);
После этого аксапта "забывает" об изменениях в словаре и не пытается делать синхронизацию. Возможно в 2012-й тоже сработает.
Отличный хинт, спасибо. А я костылем пользуюсь - если нужно много чего в DataDictionary изменить - блокирую метод classes\application\dbSynch(), возвращаю true до super(). Но... часто забываешь вернуть обратно...
За это сообщение автора поблагодарили: Logger (1).
Старый 12.09.2016, 10:16   #6  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
А не стоит ли туда диалог вставить и просто отвечать - хочу или не хочу прямо сейчас синхронизацию?
Не забыв, что может вызываться без участия пользователя - в таких случаях никаких диалогов.
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: trud (1), AvrDen (1), pedrozzz (1).
Старый 12.09.2016, 15:20   #7  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
А не стоит ли туда диалог вставить и просто отвечать - хочу или не хочу прямо сейчас синхронизацию?
Не забыв, что может вызываться без участия пользователя - в таких случаях никаких диалогов.
Не первый год из проекта в проект первым делом проверяю наличие оной заплатки в Дев окружении и добавление ее при отсутствии
Класс, как уже выше упоминалось, Application.dbSynchronize(). Вставляем в самом начале. Желательно добавить всех разрабов или вообще убрать условие на userId. Фен шуй феншуем от МС, где каждому отдельный АОС и окружение, а в суровой реальности десяток разрабов все пилит в одной базе и запущенная синхронизация у одного может тормозить работу всей команды При этом механизм синхронизации все же лучше понимать и не всегда разумно ее пропускать.
X++:
    ...
    // TODO, sync fix, begin
    if ((curUserId() == 'UserId1'
      || curUserId() == 'UserId2'
       )
     && new SqlSyncPending().databaseTouched())
    {
        if (Box::okCancel('Sync data base?', DialogButton::Cancel) == DialogButton::Cancel)
        {
            return false;
        }
    }
    // sync fix, end
    ...
__________________
Кононов Пётр

Последний раз редактировалось pedrozzz; 12.09.2016 в 15:25.
За это сообщение автора поблагодарили: rumpleteazer (1), Ivanhoe (1).
Старый 13.09.2016, 02:29   #8  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от pedrozzz Посмотреть сообщение
каждому отдельный АОС и окружение, а в суровой реальности десяток разрабов все пилит в одной базе
Процесс приобретает особую пикантность если "архитектора" убедили разместить систему в azure
__________________
Isn't it nice when things just work?
Старый 13.09.2016, 10:03   #9  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Да даже без Azure купить весь необходимый софт, выделить реально мощные машины - поди продай это клиенту
__________________
Ivanhoe as is..
Теги
ax2012, синхронизация

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axsa: MDM Adapter - Extending Dynamics AX 2012 R3 Master Data Management Blog bot DAX Blogs 0 22.05.2014 03:28
emeadaxsupport: Preliminary Microsoft Dynamics AX 2012 R2 content now on TechNet and MSDN! Blog bot DAX Blogs 0 10.11.2012 08:20
sumitsaxfactor: Create Your First Custom Service [AX 2012] Blog bot DAX Blogs 0 19.05.2012 19:14
Sample Design Patterns: Book Give-away: 'Microsoft Dynamics AX 2012 Development Cookbook' Blog bot DAX Blogs 1 12.05.2012 16:55
Dynamics AX Sustained Engineering: Servicing of Dynamics AX 2012 and Dynamics AX 2012 Feature Pack Blog bot DAX Blogs 0 08.05.2012 23:12

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

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

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