Как сопоставить пользователя DAX и сессию в Oracle?


Пришел запрос от коллеги, задача довольно проста: необходимо выяснить какой пользователь нагружает систему или породил процесс, или, наоборот, выснить, кто запустил процесс, грузящий сервер и спросить, что же он такое запустил.


Дается: Microsoft Dynamics AX 4.0SP1 на Oracle 10G R2


В Microsoft Dynamics AX можно увидеть SPID в окне активных  пользователей (Администрирование\Активные пользователи).



В моем случае SPID равен 9596.


Открываем, SQL*Plus и запускаем следующий запрос, чтобы получить Owner ID и SID:


select SID,SERIAL#, AUDSID, USER#,USERNAME, OWNERID, OSUSER from v$session where audsid = 9596


Получаем:



 


Имея OwnerId, можно найти все остальное (номер сессии, например) и организовать мониторинг:


Comments (7)

  1. gl00mie says:

    пожалуйста сделайте доступными исходные изображения

  2. Спасибо, сделано 🙂

  3. vml says:

    А есть аналогичное решение для MS SQL Server?

  4. В форме Dynamics AX 4.0 "Online users" (первый скриншот в статье) доступен SPID.

    Для Microsoft SQL Server этого достаточно, чтобы получить всю требуемую информацию.

    Что касается собственно мониторинга, если не устраивают встроенные средства и примеры запросов с сайта MSDN, то можно попробовать внешние утилиты, например TPM (http://www.teratrax.com/tpm/).

  5. _A_ says:

    Имеется ввиду пользователь DAX или что-то иное? Если я не ошибаюсь, то по spid (вне DAX, например запросами в MSSQL) максимум можно найти пользователя DOMAINAOS$, представленного в MSSQL… Не очень понятно насчет мониторинга

  6. _A_ says:

    Сорри, таки не понятно как в MSSQL идентифицировать пользователя DAX по spid… Если возможно чуть подробнее, плз?

  7. Поскольку возникают вопросы, а описать подробно в комментариях сложно, создана еще одна статья – http://blogs.msdn.com/aeremenk/archive/2007/10/04/5272528.aspx

Skip to main content