AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX Blogs
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.10.2007, 17:20   #1  
Blog bot is offline
Blog bot
Участник
 
25,617 / 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, напишите личное сообщение администратору.
Старый 04.10.2007, 17:36   #2  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
также см. SysUsersOnlineHolder - баг в 3.0
__________________
-ТСЯ или -ТЬСЯ ?
Старый 04.10.2007, 20:08   #3  
fomenka is offline
fomenka
Участник
 
97 / 14 (1) ++
Регистрация: 25.02.2003
А в DAX4.0 нет в "Администрировании" запроса "Блокировки пользователей базы данных"? Каждый раз лазить через Managment Studio не очень-то удобно.
Теги
login, spid, логин

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
aEremenko: Поддержка Microsoft SQL Server 2008 Blog bot DAX Blogs 0 04.10.2007 23:21
aEremenko: Как сопоставить пользователя DAX и сессию в Oracle? Blog bot DAX Blogs 0 26.06.2007 21:00
aEremenko: Нужно ли использовать секционирование в Microsoft SQL Server 2005 для DAX 3.0 Blog bot DAX Blogs 5 27.03.2007 09:37
aEremenko: Диагностика проблем при установке Microsoft Dynamics Ax 4.0 на Microsoft SQL Server 2005 Blog bot DAX Blogs 0 28.10.2006 16:01

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:18.