MSSQL : syslockinfo Tengiz?

chekur13
Новичок
Posts: 30
Joined: 09 Feb 2002 10:01
Location: Kharkov, Ukraine

MSSQL : syslockinfo Tengiz?

Post by chekur13 »

Добрый день, у меня есть небольшой вопрос.

Каким образом в syslockinfo кодируется поле rsc_text для Application Locks?
Я так понимаю, что берется первых четыре символа имени блокируемого ресурса, а на остальные строится хеш типа int?
Опять же в поле rsc_bin -
два байта - тип блокировки,
два байта - dbid
восемь байт - первые четыре символа ресурса
четыре байта - ???
по какому алгоритму они вычисляются если не секрет?
Заранее спасибо
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Мне тоже один раз это было надо
Я хотел вызвать sp_releaselock 'на всякий случай', типа если lock есть, Nj e;bn,
а если нет то ничего не делать
А она собака ашыпку генерит если лока нет
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
chekur13
Новичок
Posts: 30
Joined: 09 Feb 2002 10:01
Location: Kharkov, Ukraine

Post by chekur13 »

Я с генерацией этого int поигрался немного, попробовал и checksum() и binary_checksum() , но все не то.... В инете тоже об этом инфа отсутствует :(
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Re: MSSQL : syslockinfo Tengiz?

Post by tengiz »

chekur13 wrote:по какому алгоритму они вычисляются если не секрет?

Эта информация нигде официально не была опубликована. Кое-что можно найти в Inside SQL Server 2000 by Kalen Delaney. А вообще, lock manager внутри использует хеш-таблицы для хранения информации о блокировках. Индекс, кроме кое-чего другого, содержит хешированное имя ресурса.
Cheers

Return to “Вопросы и новости IT”