И опять "Превышено максимальное время ожидания предоставления блокировки" #547670


#0 by 0xFFFFFF
При попытке изменения записи РС (что программно, что интерактивно) - вываливается сообщение "Превышено максимальное время ожидания предоставления блокировки из-за ожидания сессии 3353". При том что сессия 3353 - моя. Убиваем сеанс, заходим снова - та же ерунда. Как можно снять блокировку? Отчет по блокирующим транзакциям в MSSQL 2008 ее не выводит. Как ее снять и предотвратить дальнейшее возникновение? Гугль советует "Перезапустить 1С:Сервер или убить самый старый процесс в нем. Не поможет - перезапускай SQL-сервер." Перезапустить - это понятно, но не кошерно. Убить самый старый процесс в 1С:Сервере это как? Там в ветке Процессов нет такой возможности...
#1 by 0xFFFFFF
Пытаюсь снова поменять ту же запись интерактивно - уже ругается на другую сессию...
#2 by 0xFFFFFF
Так как снять блокировку?
#3 by saaken
блокировки неуправляемые?
#4 by 0xFFFFFF
Управляемые. Вся конфа пронизана.
#5 by 0xFFFFFF
Код:
#6 by 0xFFFFFF
И везде срабатывает ахОшибкаБлокировки
#7 by 0xFFFFFF
вернее всегда.
#8 by 0xFFFFFF
ну в данном случае. Т.е. заблочена конкретная запись РС. Как ее разблочить - непонятно. Ну и исключить повторение - тоже неясно как.
#9 by Jstunner
убери попытку/исключение и глянь на какой именно строке ошибка
#10 by 0xFFFFFF
Так понятно - ошибка при попытке текБлокировка.Заблокировать. Возвращает ошибку "Превышено максимальное время ожидания предоставления блокировки..." Далее заходит в ахОшибкаБлокировки, которая дает установку на текПовторить = Истина, и цикл повторяется. Т.е. сам по себе механизм правильный. И при взаимоблокировке записей отрабатывает на 100. Только вот при каких то непонятных обстоятельствах блокировка не освобождается и зависает намертво.
#11 by 0xFFFFFF
Ага, вот нашел коммент Однако бывает и так, что три соединения одновременно пытаются обратиться к одним и тем же данным. В большинстве случаев эта ситуация превращается в «мертвое зависание». Чтобы решить и эту ситуацию, в наружный цикл с управляемой блокировкой добавляется счетчик попыток. По превышению счетчика, соединение, у которого первым оказалось превышение счетчика, выводится из цикла, чтобы два остальных процесса завершились нормально. только вот что делать с этим третьим....
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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