1CV77 + MS SQL server + блокировки #160455


#0 by rsv
rsc_dbid As dbid,    rsc_objid As ObjId,    so.name as ObjName,    rsc_indid As IndId, FROM           master.dbo.syslockinfo sl    INNER JOIN master.dbo.spt_values v ON sl.rsc_type = v.number    INNER JOIN master.dbo.spt_values x ON sl.req_status = x.number    INNER JOIN master.dbo.spt_values u ON sl.req_mode + 1 = u.number    LEFT  JOIN sysobjects so ON sl.rsc_objid = so.ID WHERE   v.type = 'LR' and x.type = 'LS' and u.type = 'L' and so.Name = '<имя таблицы>' ORDER BY spid Этот запрос вернет все блокировки, наложенные на указанную таблицу, с вот такими данными: SPID – идентификатор пользовательской сессии, DBID – идентификатор базы данных, ObjID – идентификатор объекта, ObjName – имя объекта, Type – тип объекта, Resource – идентификатор ресурса, Mode – тип блокировки, Status – статус блокировки Эта тематика всем хорошо известна . Кто как борется с ней. Кто в справочнике хранит элементы как флаги транзакций , кто бежит за новым сервером ,кто еще как. Тематика гибких блокировок сниимает монопольные блокировки с 1sjourn но не отвечает на вопрос как   все же поиметь инфу за бесплатно  о том заблокирован ли на регистр или счета или какая другая таблица перед началом проведения? Выше указанный запрос снимает этот вопрос. И прямо из среды с помощью ADO,например,  можно прочесть всю петрушку об интересующей нас таблице.
#1 by Дяпти
Спасибо за текст процедуры sp_lock. На очереди еще много процедур, не останавливайся на достигнутом.
#2 by rsv
:)
#3 by rsv
sp_lock это внутренняя процедура сервера. Просто с exec sp_lock пар1,пар2 ты кроме просмора ничего не сделаешь
#4 by Дяпти
А чего можно сделать с помощью твоего селекта? И ваще, почему у Широкого есть кнопка про базу знаний, а у меня нет?
#5 by rsv
Запрос не мой. А с . Там статьи просто жуют блокировки под MS SQL А сделать можно то, что перед проведением после того как я обрублю блокировки на 1sjourn и наложу свою блокировку на регистр допустим,2 пряник при помощи этого запроса проверит бловировку таблицы регистра
#6 by rsv
Но Вася (пряник 3 ) которому нужен другой регистр будет работать.
#7 by Дяпти
А чего их проверять?
#8 by rsv
Согласен . Нах. Пусть все транзакции в ряд выстроятся и Server по time outu нах всех откидывает.:) Я говорю о минимуме доработок и о блокировках таблиц а не строк.
#9 by Дяпти
Слышу иронию в твоих словах, а зря. Пусть ты и узнаешь, что регистр не заблокирован, и тут же кинешься проводить свой документ - никаких гарантий, что кто нить не заблокировал регистр раньше тебя нету. А значит и тебя по таймауту выкинут... или не выкинут... короче как получится.
#10 by rsv
Да. есть такое  дело  в королевстве датском :)
#11 by rsv
Но в тандеме вероятность успеха повышается Проыедура ПриЗаписи КонецЕсли КонецПроцедуры
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С