Источник:
http://blogs.msdn.com/aeremenk/archi...4/7107453.aspx
==============
Начиная с версии 4.0 для Microsoft Dynamics AX существует внешняя утилита трассировки кода и запросов. Скачать ее можно с
PartnerSource.
Утилита предназначена для замены Профайлера кода и Трассировки запросов SQL, сохранившихся с предыдущих версиий в Microsoft Dynamics AX 4.0.
Для чего потребовалась внешняя утилита, ведь Профайлер и Трассировка запросов по-прежнему могут использоваться? Дело в том, что внутренние утилиты никак нельзя было назвать "легкими", они генерировали достаточно большой объем данных и складывали его в ту же базу данных, которая использовалась и экземпляром Microsoft Dynamics AX 4.0. В данной статье не рассматриваются внутренние утилиты Профайлера кода и Трассировки запросов SQL.
В отличие от внутренних утилит, Trace parser нагружает анализируемую систему максимум на 4%. Trace parser позволяет анализировать файлы логов размерностью до 10Гб, а также сводить в одном месте данные по трассировке запросов RPC, запросов к данным на стороне SQL Server и исполнению кода X++.
Утилита существует в бета-версии, поскольку пока нет планов ее официальной поддержки через обычный канал службы поддержки для Microsoft Dynamics AX 4.0 (версии утилиты до 5.0).
Установка проста, нужно указать папку куда складывать данные логов и базу данных для создания представлений. При необходимости анализа ситуации "на лету", можно установить и интеграцию с клиентом Microsoft Dynamics AX. В последнем случае, запустится клиент Microsoft Dynamics AX для импорта требуемых объектов.
До установки проверьте наличие .
NET Framework 3.0.
Включаем трассировку для сервера приложений AOS, если необходимо:
Теперь включаем трассировку и на клиенте:
Создаем журнал ГК и разносим его.
Файлы логов сервера и клиента копируем в папку Trace Parcer (в моем случае - C:\AX Trace\Logs\Unprocessed). Хотя это и необязательно, облегчает администрирование.
Импортируем логи:
Теперь в Trace Analyzer можно открыть лог и начать его анализ. Например, найдем вызовы методов класса LedgerJournalCheckPost, выберем метод.
Затем можно нажать кнопку "Jump to Callstack", чтобы посмотреть код.
Утилита анализа довольная проста и понятна, особенно тем, кто ранее имел дело с внутреннеми утилитами Профайлера кода и Трассировки запросов SQL. Имеются развитые средства поиска, описанные в документации.
Что в документации не описанно или недостаточно детализированно, так это описание вызовов RPC:
Метод Описание [Client\Server]EvalFunc Оценка функции на другом уровне (для клиента – на серверном уровне) [Client\Server]FreeClass Освобождение объекта на другом уровне ServerNext Операции доступа к данным или манипуляций с данными со стороны клиента ServerWriteBegin Вызов TTSBegin на клиенте ServerWriteEnd Вызов TTSCommit\TTSAbort на клиенте [Client\Server]DestructCursor Очистка буфера записи на другом уровне [Client\Server]UpdateDirtyCursor Обновление буфера записи на другом уровне с новой информацией ServerRecordInsertList Вызов операции вставки записей с использованием RecordInsertList со стороны клиента [Client\Server]SetClassLoopDependencies Увеличение счетчика ссылок к объекту на другом уровне [Client\Server]TestClassLoopDependencies Запрос к другому уровню с целью проверки статуса объекта и его освобождению, если таковое возможно
Данная статья подготовлена с помощью Windows Live Writer.
Источник:
http://blogs.msdn.com/aeremenk/archi...4/7107453.aspx