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