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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.07.2013, 12:44   #1  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Мощно конечно, но если возникают такие вещи в коде, напрашивается вопрос: Вы вообще рефакторинг делаете? Разбив сложный метод с транзакциями на несколько простых, можно все-таки транзакции вычленить примерно в такую форму:
X++:
void complexMethod()
{
    ttsbegin;
    simpleMethods();
    ttscommit;
}
__________________
// no comments
Старый 15.07.2013, 19:41   #2  
Ярослав Щекин is offline
Ярослав Щекин
Участник
 
78 / 174 (6) ++++++
Регистрация: 16.03.2009
Цитата:
Сообщение от dech Посмотреть сообщение
Мощно конечно, но если возникают такие вещи в коде, напрашивается вопрос: Вы вообще рефакторинг делаете?
Бывает. Но к нашей Axapta многие приложили руки, и непонятно, что и когда рефакторить. Вы на своём/своих приложениях попробовали, кстати?
Старый 16.07.2013, 07:37   #3  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от Ярослав Щекин Посмотреть сообщение
Вы на своём/своих приложениях попробовали, кстати?
Попробовал на АХ3 и АХ4, пишет ошибку:

invalid command name "Exportfile"
while executing
"Exportfile for AOT version 1.0 or later"
Вложения
Тип файла: xpo _TestTTS.xpo (1.4 Кб, 476 просмотров)
__________________
// no comments
Старый 16.07.2013, 09:37   #4  
Ярослав Щекин is offline
Ярослав Щекин
Участник
 
78 / 174 (6) ++++++
Регистрация: 16.03.2009
Цитата:
Сообщение от dech Посмотреть сообщение
Попробовал на АХ3 и АХ4, пишет ошибку:

invalid command name "Exportfile"
while executing
"Exportfile for AOT version 1.0 or later"
А у меня работает на этом файле. А как Вы запускаете (какая командная строка, с локального или сетевого диска), какая у Вас операционная система?
Старый 16.07.2013, 10:29   #5  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от Ярослав Щекин Посмотреть сообщение
А у меня работает на этом файле. А как Вы запускаете (какая командная строка, с локального или сетевого диска), какая у Вас операционная система?
Windows 7, папка "Мои документы". Запускаю через FAR. Но я думаю, не в этом дело.
Просто, если он уже читает первую строчку "Exportfile for AOT version 1.0 or later" и пишет, что это invalid command, то вам надо смотреть в сторону обработки строк.
__________________
// no comments
Старый 16.07.2013, 11:32   #6  
Ярослав Щекин is offline
Ярослав Щекин
Участник
 
78 / 174 (6) ++++++
Регистрация: 16.03.2009
Цитата:
Сообщение от dech Посмотреть сообщение
Windows 7, папка "Мои документы". Запускаю через FAR. Но я думаю, не в этом дело.
Просто, если он уже читает первую строчку "Exportfile for AOT version 1.0 or later" и пишет, что это invalid command, то вам надо смотреть в сторону обработки строк.
Нет, не нужно, дело не в этом. А вы под администратором запускаете или нет? А что будет, если просто запустить analyzer.exe без параметров? А если скопировать в корень какого-нибудь диска и запустить оттуда?

И ещё, можете попробовать версию из вложенного файла?
Вложения
Тип файла: zip analyzer.zip (737.0 Кб, 117 просмотров)

Последний раз редактировалось Ярослав Щекин; 16.07.2013 в 11:38.
Старый 16.07.2013, 12:04   #7  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Мне кажется, лучше копать в этом направлении:
1. Поставить в настройках АОСа галку "Разрешить точки останова для отладки кода Х++, выполняемого на этом сервере.

2. После этого в классе Application начнут автоматически вызываться методы ttsNotifyBegin при начале транзакции и ttsNotifyCommit при завершении транзакции.

3. Модифицируйте эти методы так, чтобы записывать логи. В лог записывайте стек вызовов и значение уровня вложенности транзакции.

4. Анализируйте лог, проверяя стек вызовов и уровень вложенности транзаций, чтобы понять, где непарные ttsbegin\ttscommit

Я данный код написал на коленке прямо в редакторе сообщений.
X++:
void ttsNotifyBegin()
{
             container stackTrace;
             int i;
             str s="";
             UserConnection          userConnection;
             MyLogTable                 MyLogTable;
  ..........................

             if (!inLog) //добавленная в класс Application переменная, чтобы не попасть в рекурсию при вызове userConnection.ttsbegin()
             {
                  inLog = true;
                 stackTrace = xSession::xppCallStack();
                 for(i = 7; i<=conLen(stackTrace); i+=2)
                     s+=strFmt("%1:%2\r\n", conPeek(stackTrace, i), conPeek(stackTrace, i+1));

                 userConnection = new UserConnection();
                 userConnection.ttsbegin();

                 MyLogTable.setConnection(userConnection);

                 MyLogTable.TTSLevel = appl.ttsLevel();
                 MyLogTable.CallStack =  s;
                 MyLogTable.insert();
                 userConnection.ttscommit();
                 inLog = false;
        }
}

Последний раз редактировалось Ace of Database; 16.07.2013 в 12:09.
Теги
ttscomit, best practice

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Чтение только завершенных транзакций. raz DAX: Программирование 4 19.05.2017 10:20
Неверный откат сопоставленных транзакций sgt.Pepper DAX: Программирование 4 17.01.2008 09:16
IMTS (Система множественных складских транзакций) yuranio DAX: Функционал 7 04.03.2005 17:56
Какая связь между Сводным планированием и Система множественных складских транзакций Wamr DAX: Функционал 6 27.09.2004 17:03
Очень частая фиксация транзакций - без этого никак? avzh DAX: Программирование 10 12.07.2004 10:35
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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