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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.07.2010, 09:56   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Sergey Petrov Посмотреть сообщение
Может быть, нужно вместе с трассировкой сервера ОБЯЗАТЕЛЬНО включать трассировку на клиенте?
Вроде в http://fedotenko.info/?p=164 написано, что можно и без этого обойтись...
А по-моему нужно включать трассировку на клиенте.
(хотя конечно же могу ошибаться, но всегда включаю).

галочка на AOS указывает, что запросы могут трассироваться.
галочка на клиенте указывает запросы с каких именно клиентов будут трассироваться.
__________________
полезное на axForum, github, vk, coub.
Старый 02.07.2010, 11:31   #2  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от mazzy Посмотреть сообщение
А по-моему нужно включать трассировку на клиенте.
(хотя конечно же могу ошибаться, но всегда включаю).

галочка на AOS указывает, что запросы могут трассироваться.
галочка на клиенте указывает запросы с каких именно клиентов будут трассироваться.
Нет - не так. На самом деле трассировка - это такая культурная контрольная печать. Причем контрольной печати сервера, глубоко безразлично на контрольную печать клиента. (И наоборот.) Причем авторы функционала трассировки в Аксапте совершенно не расчитывали на то, что кто-то будет эту контрольную печать парсить и выводить в какое-то GUI-окошко. Я тут как-то дизассемблировал трейс-парсер и обнаружил что там дофига мест работает по каким-то полуэвристическим алгоритмам,поскольку контролльная печать сама по себе не обеспечивает даных для парсинга. Например - есть событие Компиляция SQL-запроса; Есть событие - биндинг переменной для запроса. Однако ссылки на первое событие во втором - нету. И авторы trace parser использовали какие-то хитрые эвристики для того чтобы второе событие обработать. (Кстати - очень надеюсь что в 6ке они приведут свои события трассировочные в порядок. Нельзя так жить дальше.)
В следствие этого - в трейс-парсере импорт очень медленно работает, потребляет безумный объем памяти (для хранения рабочих хэш-таблиц разных) и нервно реагирует на потерявшиеся события (это когда мы например включили трейсинг в какой-то глубоко вложенной функции и события выхода из функций есть, а входа - нету).

Мне кажется что проблема топик-стартера просто в слишком большом объеме собранной трассы. У меня редко получалось успешно импортировать трассы более 250-300 мегов. 550 мегов кажется просто нереальной цифрой.

Из советов в стиле "Попинать колеса":
  1. При импорте разочек поставить галочки "Drop Indexes" и "Rebuild Indexes". Иногда помогало в похожих ситуациях.
  2. Можно попробовать запустить импорт на машине с бОльшим объемом памяти. У меня на домашнем компе 8 гигов, а на рабочем - 4. Достаточно часто трассы, которые на рабочем не импортировались, на домашнем удается импортнуть и посмотреть...
За это сообщение автора поблагодарили: mazzy (2), Logger (5).
Старый 02.07.2010, 11:42   #3  
Sergey Petrov is offline
Sergey Petrov
Участник
 
80 / 19 (1) ++
Регистрация: 03.04.2007
Адрес: Saint-Petersburg, Russia
Цитата:
Сообщение от fed Посмотреть сообщение
Можно попробовать запустить импорт на машине с бОльшим объемом памяти. У меня на домашнем компе 8 гигов, а на рабочем - 4. Достаточно часто трассы, которые на рабочем не импортировались, на домашнем удается импортнуть и посмотреть...
fed, благодарю Вас за идею!
На моём рабочем компе памяти 2 Gb. Так что, могу Вам только позавидовать.
500 Mb и пр. - это потому что AOS - рабочий. Попробую на каком-нибудь из наших сереверов запустить парсер с AOSным логом.
Вообще, очень грамотно сделано, что данная утилита официально не поддерживается DAX. Иначе - завалили бы претензиями.
__________________
MS Dynamics AX 2009

Kernel 5.0.1600.4110
Application 5.0.1500.6491

Последний раз редактировалось Sergey Petrov; 02.07.2010 в 12:12.
Старый 02.07.2010, 11:33   #4  
Sergey Petrov is offline
Sergey Petrov
Участник
 
80 / 19 (1) ++
Регистрация: 03.04.2007
Адрес: Saint-Petersburg, Russia
Цитата:
Сообщение от mazzy Посмотреть сообщение
А по-моему нужно включать трассировку на клиенте.
(хотя конечно же могу ошибаться, но всегда включаю).

галочка на AOS указывает, что запросы могут трассироваться.
галочка на клиенте указывает запросы с каких именно клиентов будут трассироваться.
mazzy, спасибо за отклик!
Что на AOSе, что на клиенте не галочки, а целые кнопочки!

Провёл эксперимент с включением трассировки на сервере и на клиенте одновременно.
Как проводил:
1. В настройках клиента включил трассировку.
2. Запустил клиента (позаботился о том, чтобы он приконнектился к тому AOSу, который участвует в эксперименте - это тоже непростая задача, когда в кластере 2 AOSа).
3. Включил трассировку в настройках AOSа.
4. Запустил на клиенте некоторую операцию (для примера - отчётик минут на 5 времени формирования).
5. После окончания формирования отчёта закрыл клиент (завершил получение данных трассировки со стороны клиента).
6. Выключил трассировку в настройках AOSа (завершил получение данных трассировки со стороны сервера).
7. Выключил трассировку в настройках клиента (чтобы трассировка больше не запускалась, если придётся снова запустить сессию DAX).

Получил:
1. Файл лога операций с AOSа (размером порядка 400 Мб).
2. Файл лога операций с клиента (размером порядка 32 Мб).

Дальнейшие действия:
1. Успешно загрузил в trace parser лог с AOSа - результат прежний (ни одной записи).
2. Дополнительно успешно загрузил в trace parser лог с клиента - записи появились, причём только для того пользователя, под которым сначала запускал клиентскую сессию.
3. Удалил из trace parser лог AOSа - ничего не изменилось. Записи как были, так и остались (по одному пользователю).

Отсюда делаю вывод: лог с AOSа у меня не отобразился. Лог с клиента отобразился правильно.

Вопрос: почему у меня не отображается успешно загруженный лог с AOSа? Поскольку у меня trace parser сообщает, что логи что с AOSа, что с клиента загружены успешно, но отображает ТОЛЬКО логи с клиента, то, может быть, проблема в ОТОБРАЖЕНИИ загруженной с AOS информации?
__________________
MS Dynamics AX 2009

Kernel 5.0.1600.4110
Application 5.0.1500.6491
Старый 02.07.2010, 12:29   #5  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от Sergey Petrov Посмотреть сообщение
mazzy,
Вопрос: почему у меня не отображается успешно загруженный лог с AOSа? Поскольку у меня trace parser сообщает, что логи что с AOSа, что с клиента загружены успешно, но отображает ТОЛЬКО логи с клиента, то, может быть, проблема в ОТОБРАЖЕНИИ загруженной с AOS информации?
Попробуй удалить все другие сессии трассировки, а потом залезь в БД трейспарсера и посмотри много ли там вообще записей в таблицах. Ну например - в таблицах sqlStatement или TraceLine. Если записи в табличках есть, но на экране их не видно, попробуй тупо заимпортировать с галками обновления индекса и удаления индекса. Если записей в табличках нету - значит ты столкнулся с каким-то принципиально новым для меня глюком .

Кстати - ситуации с нехваткой памяти у меня вызывали просто падение трейспарсера с сообщением о Unhandled Exception. На машине с большим объемом оперативки - подобное падение случалось реже...
Старый 02.07.2010, 15:37   #6  
Sergey Petrov is offline
Sergey Petrov
Участник
 
80 / 19 (1) ++
Регистрация: 03.04.2007
Адрес: Saint-Petersburg, Russia
К сожалению, все эксперименты неудачны. С серверным логом - в бд вообще ни одной записи. С клиентским - есть кое-что (в поле TraceLine.TraceId стоит только Id того лога, который клиентский).
В окошке "Open Trace Database" при двух импортированных логах у серверного "Begin Time" совпадает с "End Time" (причём, какое-то странное - текущее время на моём компе с учётом TimeZone, когда импорт был запущен), а для клиентского - как положено, отображается то, что реально было (правда, по Гринвинчу, со сдвигном назад на 4 часа).
Такое впечатление, что при импорте серверного обработка производится (какое-то время диск мой жёсткий натужно кряхтит и процессор слегка нагружен), но транзакция, в которой добавляются записи в базу с логами, откатывается (судя по полному отсутствию записей, к ней относящихся).
__________________
MS Dynamics AX 2009

Kernel 5.0.1600.4110
Application 5.0.1500.6491
Теги
trace parser, отладка, стек вызовов, трассировка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axperf: Event Trace Parser Tool for Microsoft Dynamics AX Released Blog bot DAX Blogs 0 20.06.2009 10:05
axcoder: Trace Parser small bug Blog bot DAX Blogs 0 17.01.2008 15:40
Arijit Basu: Trace Parser (beta) tool for Microsoft Dynamics™ AX 4.0 Blog bot DAX Blogs 0 02.08.2007 22:00
Dynamics AX: Trace Parser (beta) tool for Microsoft Dynamics™ AX 4.0 Blog bot DAX Blogs 1 14.04.2007 04:32
Dynamics AX: Trace Parser (beta) tool for Microsoft Dynamics™ AX 4.0 Blog bot DAX Blogs 0 20.03.2007 14:40

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

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

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