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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.09.2008, 15:46   #1  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
Thumbs up MS SQL Processes Viewer
Всем привет.

После очередных изысканий в области блокировок Аксапты с MS SQL решил сделать маленькую фичу, облегчающую эти самые изыскания. Поскольку фича получилась довольно удобной, решил поделится ей с общественностью .
Основные возможности фичи:
  • позволяет просматривать информацию по всем "аксаптовым" процессам SQL-сервера (SPID'ам) из самой Аксапты.
  • каждому спиду сопоставлена соответствующая сессия AOS'а и пользователь.
  • для каждого процесса есть возможность просмотреть заблокированные SQL-сервером ресурсы.
  • теоретическая возможность работы для нескольких экземпляров AOS, объединенных в кластер (не тестировалась).

Разрабатывалось и тестировалось для AX3.0SP6 + MS SQL Server 2005.

Поскольку фича маленькая, перед запуском ее необходимо слегка доработать напильником в некоторых местах (места отмечены TODO в коде, там же и небольшие коменты ).

Для демонстрации работы фичи необходимо в Аксе "сделать" блокировку и из независшей сессии запустить <\Menu Items\Display\SQLProcessesViewer> из прилагаемого проекта. Далее методом тыка изучить то, что откроется .

В случае возникновения проблем или благодарностей, просьбо писать в этой теме .
Вложения
Тип файла: zip SQLProcessesViewer.zip (9.8 Кб, 372 просмотров)
За это сообщение автора поблагодарили: Косых Артём (3), alex55 (1), fedka (1).
Старый 15.09.2008, 11:22   #2  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
146 просмотров, 125 скачиваний... Ни замечаний, ни благодарностей
Кто-нить пробовал запускать фичу для кластера аосов?
Старый 15.09.2008, 11:28   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Я все держу тему открытой, но так и не скачал.
Думаю, пара скриншотов должна подогреть интерес к тулзе.
Старый 15.09.2008, 16:14   #4  
Weez is offline
Weez
Участник
Axapta Retail User
 
250 / 84 (3) ++++
Регистрация: 18.01.2006
Адрес: Moscow city
На Axapta 3.0 SP3, MS SQL 2000 - ругается Invalid object name 'sys.sysprocesses'.
Если закомментировать - то форма открывается, очень похоже на форму "Активные пользователи"
На заблокированные русурсы кстати тож ругается.. Походе нет такого представления в SQL Server-e
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет.
Старый 15.09.2008, 17:11   #5  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
Цитата:
Сообщение от Weez Посмотреть сообщение
На Axapta 3.0 SP3, MS SQL 2000 - ругается Invalid object name 'sys.sysprocesses'.
Если закомментировать - то форма открывается, очень похоже на форму "Активные пользователи"
На заблокированные русурсы кстати тож ругается.. Походе нет такого представления в SQL Server-e
Попробуйте заменить "sys.sysprocesses" на "master.dbo.sysprocesses", должно помочь для процессов. Длязаблокированных ресурсов надо посмотреть в хелпе.
За это сообщение автора поблагодарили: Weez (1).
Старый 16.09.2008, 10:07   #6  
Weez is offline
Weez
Участник
Axapta Retail User
 
250 / 84 (3) ++++
Регистрация: 18.01.2006
Адрес: Moscow city
Угу, помогло
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет.
Старый 17.09.2008, 18:39   #7  
Sergey Petrov is offline
Sergey Petrov
Участник
 
80 / 19 (1) ++
Регистрация: 03.04.2007
Адрес: Saint-Petersburg, Russia
Всё чудесно, но одно большое НО - где бы найти информацию по аналогу комбинации
FROM master.dbo.dm_tran_locks as a
JOIN master.dbo.partitions as b
в SQL Server 2000? Что-то я нашёл про табличку syslockinfo, но там есть поле такое rsc_objid, по которому никак не получается у меня получить имя объекта (в предложенном решении эта инфориация как раз и получается за счёт связки с partitions).
Без этой части совсем не интересно получается (для меня, с моим старичком 2000-м).
Старый 18.09.2008, 09:47   #8  
DocSerzh is offline
DocSerzh
Участник
 
51 / 22 (0) +++
Регистрация: 28.06.2004
Цитата:
Сообщение от Sergey Petrov Посмотреть сообщение
Всё чудесно, но одно большое НО - где бы найти информацию по аналогу комбинации
FROM master.dbo.dm_tran_locks as a
JOIN master.dbo.partitions as b
в SQL Server 2000? Что-то я нашёл про табличку syslockinfo, но там есть поле такое rsc_objid, по которому никак не получается у меня получить имя объекта (в предложенном решении эта инфориация как раз и получается за счёт связки с partitions).
Без этой части совсем не интересно получается (для меня, с моим старичком 2000-м).
Пример здесь посмотрите

Маленькая тулза, может кто писал...

К сожалению, сейчас проверить не могу...
Старый 17.03.2010, 12:39   #9  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
Цитата:
Сообщение от Sergey Petrov Посмотреть сообщение
Всё чудесно, но одно большое НО - где бы найти информацию по аналогу комбинации
FROM master.dbo.dm_tran_locks as a
JOIN master.dbo.partitions as b
в SQL Server 2000? Что-то я нашёл про табличку syslockinfo, но там есть поле такое rsc_objid, по которому никак не получается у меня получить имя объекта (в предложенном решении эта инфориация как раз и получается за счёт связки с partitions).
Без этой части совсем не интересно получается (для меня, с моим старичком 2000-м).
Спустя почти два года на клиенте пришлось дорабатывать свою же форму для MSSQL2000. Соответственно всем ветеранам с MSSQL 2000 посвящается :
X++:
    select    a.req_spid     As SPID,
        a.rsc_objid     As ObjId,
        b.name         As ObjName,
        substring (v.name, 1, 4) As Type,
        substring (u.name, 1, 8) As Mode,
        substring (x.name, 1, 5) As Status
    from
        master.dbo.spt_values v,
        master.dbo.spt_values x,
        master.dbo.spt_values u,
        master.dbo.syslockinfo a,
        <DBNAME>.dbo.sysobjects b
    where
        a.req_spid = <SPID>
        and a.rsc_objid = b.id
        and a.rsc_type = v.number
        and v.type = 'LR'
        and a.req_status = x.number
        and x.type = 'LS'
        and a.req_mode + 1 = u.number
        and u.type = 'L'
Для корректной работы запроса вместо <DBNAME> нужно подставить имя Аксаптовой базы. Вместо <SPID> нужный индентификатор процесса.
__________________
Dynamics AX Experience
За это сообщение автора поблагодарили: Logger (3).
Старый 17.03.2010, 12:46   #10  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Для быстрого поиска виновника блокировок (когда они раньше у нас были) для MS SQL Server, использую следующий запрос.
Он отбражает только виновника, который является корнем всех остальных блокировок.

PHP код:
use master
go
select 
from sysProcesses
where spid in
(select blocked from sysProcesses where blocked <> and blocked <> spid
and 
spid in (select spid from sysProcesses where blocked or blocked spid)
order by spid 
Старый 17.03.2010, 12:56   #11  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
Для быстрого поиска виновника блокировок (когда они раньше у нас были) для MS SQL Server, использую следующий запрос.
Он отбражает только виновника, который является корнем всех остальных блокировок.

PHP код:
use master
go
select 
from sysProcesses
where spid in
(select blocked from sysProcesses where blocked <> and blocked <> spid
and 
spid in (select spid from sysProcesses where blocked or blocked spid)
order by spid 
Не разбирал детально суть запроса, но мне кажется он не поймает случай дедлоков, когда сессии блокируют друг друга.
Старый 17.03.2010, 12:58   #12  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Эх! опять зря написал
Старый 17.01.2013, 12:18   #13  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
:)
Для 4ки бы кто запилил =)
Теги
download, sql, sql 2005, sql 2008, sql server, администрирование, блокировки, законченный пример, инструменты, разработка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DAX 2009 SP1 + MS SQL Server 2008 xshaman DAX: Администрирование 7 10.12.2008 12:26
msdynamicsax: DAX 2009 and MS SQL 2008 Blog bot DAX Blogs 0 09.08.2008 14:05
Неизвестный сбой!!! Dynamics AX 4.0 SP2 with MS SQL 2005 MarunYA DAX: Администрирование 6 06.12.2007 12:16
обеспечение лучшей производительности ms sql SHiSHok DAX: Администрирование 0 08.12.2005 11:12
MS SQL-server 2000 and Navision Yoil DAX: Администрирование 21 20.12.2002 17:37

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

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

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