Показать сообщение отдельно
Старый 04.10.2007, 17:20   #1  
Blog bot is offline
Blog bot
Участник
 
25,643 / 848 (80) +++++++
Регистрация: 28.10.2006
aEremenko: Как сопоставить пользователя DAX и сессию в Microsoft SQL?
Источник: http://blogs.msdn.com/aeremenk/archi...4/5272528.aspx
==============


Поскольку было много вопросов по статье "Как сопоставить пользователя DAX и сессию в Oracle?" по аналогичному сопоставлению для Microsoft SQL Server, попробую описать в отдельной статье, а не в комментариях, поскольку в комментарии проблематично вставить изображения.

Дается: Microsoft Dynamics AX 4.0SP1 на Microsoft SQL Server 2005 SP2.

Например, запустим простейший скрипт в DAX 4.0 SP1 для появления блокировки:

static void dev3_lock1(Args _args)
{
LedgerTable ledgerTable;

ttsbegin;
while select forupdate ledgerTable
{
ledgerTable.AccountName += " Test";
ledgerTable.update();

pause; // висим и можем отследить блокировку
}

ttscommit; }
Запускаем Microsoft SQL Server Management Studio. Создаем запрос и вводим, например:
use master
go
exec sp_lock;
go

Получаем такой результат:


В данном случае мы получили SPID и идетификатор объекта.
SQL Book Online: "Аргумент session ID (SPID в SQL Server 2000 и более ранних версиях) является идентификатором сеанса, принадлежащего экземпляру SQL Server."
Попробуем узнать, что за объект такой, запускаем:
use dynamics // наша база
go
select name, id, xtype, type from sysobjects where id = 1687065146

Оказывается - LedgerTable с блокировкой на обновление :)

А вдруг хотим себя перепроверить и понять, кто породил транзакцию? Тогда:
use master
go
select spid, kpid, blocked, dbid, ecid, open_tran from sysprocesses

Смотрим:


Убедились, что 'наш' SPID - 52. Что дальше? Определим откуда он пришел:
use master
go
exec sp_who 52;
go

Получаем такой результат:

Что имеем? SPID (номер процесса) и HOSTNAME (имя сервера AOS с которого пришла сессия). В моем случае - '52' и 'AEREMENK01'.

Теперь запускаем еще одну сессию Microsoft Dynamics AX и выбираем Администрирование | Активные пользователи в Главном меню:

Получаем, код и имя пользователя.
Дальше, звоним пользователю и спрашиваем зачем он это запускал :)
Данная статья подготовлена с помощью Windows Live Writer.


Источник: http://blogs.msdn.com/aeremenk/archi...4/5272528.aspx
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.