Trace Parser для Microsoft Dynamics AX
Начиная с версии 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 .
Comments
- Anonymous
October 27, 2008
The comment has been removed