![]() |
#1 |
MCTS
|
![]()
Всем привет.
После очередных изысканий в области блокировок Аксапты с MS SQL решил сделать маленькую фичу, облегчающую эти самые изыскания. Поскольку фича получилась довольно удобной, решил поделится ей с общественностью ![]() Основные возможности фичи:
Разрабатывалось и тестировалось для AX3.0SP6 + MS SQL Server 2005. Поскольку фича маленькая, перед запуском ее необходимо слегка доработать напильником в некоторых местах (места отмечены TODO в коде, там же и небольшие коменты ). ![]() Для демонстрации работы фичи необходимо в Аксе "сделать" блокировку и из независшей сессии запустить <\Menu Items\Display\SQLProcessesViewer> из прилагаемого проекта. Далее методом тыка изучить то, что откроется ![]() В случае возникновения проблем или благодарностей, просьбо писать в этой теме ![]() |
|
|
За это сообщение автора поблагодарили: Косых Артём (3), alex55 (1), fedka (1). |
![]() |
#2 |
MCTS
|
146 просмотров, 125 скачиваний... Ни замечаний, ни благодарностей
![]() Кто-нить пробовал запускать фичу для кластера аосов? |
|
![]() |
#3 |
Участник
|
Я все держу тему открытой, но так и не скачал.
![]() Думаю, пара скриншотов должна подогреть интерес к тулзе. |
|
![]() |
#4 |
Участник
|
На Axapta 3.0 SP3, MS SQL 2000 - ругается Invalid object name 'sys.sysprocesses'.
Если закомментировать - то форма открывается, очень похоже на форму "Активные пользователи" ![]() На заблокированные русурсы кстати тож ругается.. Походе нет такого представления в SQL Server-e
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет. |
|
![]() |
#5 |
MCTS
|
Попробуйте заменить "sys.sysprocesses" на "master.dbo.sysprocesses", должно помочь для процессов. Длязаблокированных ресурсов надо посмотреть в хелпе.
|
|
|
За это сообщение автора поблагодарили: Weez (1). |
![]() |
#6 |
Участник
|
Угу, помогло
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет. |
|
![]() |
#7 |
Участник
|
Всё чудесно, но одно большое НО - где бы найти информацию по аналогу комбинации
FROM master.dbo.dm_tran_locks as a JOIN master.dbo.partitions as b в SQL Server 2000? Что-то я нашёл про табличку syslockinfo, но там есть поле такое rsc_objid, по которому никак не получается у меня получить имя объекта (в предложенном решении эта инфориация как раз и получается за счёт связки с partitions). Без этой части совсем не интересно получается (для меня, с моим старичком 2000-м). ![]() |
|
![]() |
#8 |
Участник
|
Цитата:
Сообщение от Sergey Petrov
![]() Всё чудесно, но одно большое НО - где бы найти информацию по аналогу комбинации
FROM master.dbo.dm_tran_locks as a JOIN master.dbo.partitions as b в SQL Server 2000? Что-то я нашёл про табличку syslockinfo, но там есть поле такое rsc_objid, по которому никак не получается у меня получить имя объекта (в предложенном решении эта инфориация как раз и получается за счёт связки с partitions). Без этой части совсем не интересно получается (для меня, с моим старичком 2000-м). ![]() Маленькая тулза, может кто писал... К сожалению, сейчас проверить не могу... |
|
![]() |
#9 |
MCTS
|
Цитата:
Сообщение от Sergey Petrov
![]() Всё чудесно, но одно большое НО - где бы найти информацию по аналогу комбинации
FROM master.dbo.dm_tran_locks as a JOIN master.dbo.partitions as b в SQL Server 2000? Что-то я нашёл про табличку syslockinfo, но там есть поле такое rsc_objid, по которому никак не получается у меня получить имя объекта (в предложенном решении эта инфориация как раз и получается за счёт связки с partitions). Без этой части совсем не интересно получается (для меня, с моим старичком 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'
__________________
Dynamics AX Experience |
|
|
За это сообщение автора поблагодарили: Logger (3). |
![]() |
#10 |
Участник
|
Для быстрого поиска виновника блокировок (когда они раньше у нас были) для MS SQL Server, использую следующий запрос.
Он отбражает только виновника, который является корнем всех остальных блокировок. PHP код:
|
|
![]() |
#11 |
Участник
|
Цитата:
Сообщение от Ace of Database
![]() Для быстрого поиска виновника блокировок (когда они раньше у нас были) для MS SQL Server, использую следующий запрос.
Он отбражает только виновника, который является корнем всех остальных блокировок. PHP код:
|
|
![]() |
#12 |
Участник
|
Эх! опять зря написал
![]() |
|
![]() |
#13 |
Участник
|
![]()
Для 4ки бы кто запилил =)
|
|
Теги |
download, sql, sql 2005, sql 2008, sql server, администрирование, блокировки, законченный пример, инструменты, разработка |
|
|