|
![]() |
#1 |
Участник
|
А вот такая штука:
[attachment=633:block_users.JPG] Форма "Блокировки пользователей базы данных". В большинстве случаев в поле "Пользователь" записи о блокировке показано значение "<Не определено>", а у некоторых блокировок - показано имя пользователя нормально. Сей секрет не разгадал. Почему? Может кто задавался вопросом?
__________________
![]() --- Народу собралось - яблоку плюнуть негде! |
|
![]() |
#2 |
Участник
|
Да, задавался. Но истинной в последней инстанции не обладаю.
Записи в этой форме получаются на основании ответа SQL-сервера. Если я правильно понял логику работы, то Аксапта может пользователя, породившего блокировку. А там где <Не определено>, то заблокированные другим процессы. В вашем случае, все повесила Бушуева процессом с номером 68. Остальные ждут ее. По-моему, <Не определено> появляется из-за ошибки в коде. Но может быть, так и было задумано... |
|
![]() |
#3 |
Участник
|
mazzy, спасибо за ответ!
Понаблюдаю за блокировками на SQL сервере на предмет "крайней" блокировки (первой, за которой очередь выстроилась). -- Знаете, я постоянно при работе в аксапте держу открытым это окно и поглядываю, на предмет "очереди". В 90% случаев "крайняя" пользовательская блокировка всетаки не отображается по имени пользователя. Приходится на через Enterprise Manager определять крайнюю блокировку. -- А на счет возможной ошибке в коде.. - малясь поподробнее можно? Только направьте, дальше я с программерами нашими попробую потолковать.
__________________
![]() --- Народу собралось - яблоку плюнуть негде! |
|
![]() |
#4 |
Участник
|
Не уверен в рравильности подозрений, а проверить не могу, но присмотритесь к классу SysBlockingMSSQL и методу loadblock
Код: if (blockingTable.Spid) { if (usersOnlineHolder.findSpid(blockingTable.Spid)) blockingTable.userName = usersOnlineHolder.username(); else blockingTable.userName = '<'+strfmt("@SYS21247")+'>'; } |
|