Share via


Как сопоставить пользователя 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

  • Anonymous
    July 16, 2007
    пожалуйста сделайте доступными исходные изображения
  • Anonymous
    July 16, 2007
    Спасибо, сделано :)
  • Anonymous
    August 09, 2007
    А есть аналогичное решение для MS SQL Server?
  • Anonymous
    August 16, 2007
    В форме Dynamics AX 4.0 "Online users" (первый скриншот в статье) доступен SPID.Для Microsoft SQL Server этого достаточно, чтобы получить всю требуемую информацию.Что касается собственно мониторинга, если не устраивают встроенные средства и примеры запросов с сайта MSDN, то можно попробовать внешние утилиты, например TPM (http://www.teratrax.com/tpm/).
  • Anonymous
    October 03, 2007
    Имеется ввиду пользователь DAX или что-то иное? Если я не ошибаюсь, то по spid (вне DAX, например запросами в MSSQL) максимум можно найти пользователя DOMAINAOS$, представленного в MSSQL... Не очень понятно насчет мониторинга
  • Anonymous
    October 03, 2007
    Сорри, таки не понятно как в MSSQL идентифицировать пользователя DAX по spid... Если возможно чуть подробнее, плз?
  • Anonymous
    October 03, 2007
    Поскольку возникают вопросы, а описать подробно в комментариях сложно, создана еще одна статья - http://blogs.msdn.com/aeremenk/archive/2007/10/04/5272528.aspx