22.02.2018 12:37
OlegON
 
Сегодня зависли все SP, в логах была вот такая ошибка
Цитата:
2018-02-22 11:33:09,328 ERROR [DHC8pJ2yUO0X6KkEEJw-917m7SaAN2Aolh8fadBHsD9Z7zWH8PRI!-2059408269!1519288360370 WebAPI: -1560517917] protocol.StandaloneRequest: Error handling request for command MethodExecuteCommand[outPLPCallParameters=[],commitRequested=true,refreshInterfacePackage=true,controls=[],refillState=<null>,methodId=17603120,subMethodKey=<null>,classID=BS_REQUEST,objectID=6086643114,optimizedGridUpdates=true,sessionId=DHC8pJ2yUO0X6KkEEJw-917m7SaAN2Aolh8fadBHsD9Z7zWH8PRI!-2059408269!1519288360370]
ru.cft.platform.core.runtime.exception.CoreRuntimeException: ORA-20500: LOCK-RESOURCE_BUSY: Экземпляр [6086643114] блокирован, тип [BS_REQUEST]
ORA-06512: на "IBS.Z$U$17603120", line 83
ORA-06512: на line 1
В базе данных блокировок при этом не зафиксировано.

«Экземпляр [6086643114] блокирован, тип [BS_REQUEST]»
Операция, в которой возникло сообщение, может быть определена так:
SQL код:
select m.class_idm.short_name,m.name from ibs.methods m where id '17603120'
суть в том, что кто-то в рамках прикладной логики в другой сессии заблокировал экземпляр, тип и id которого указан.
Таких сообщений в логах сервера может быть очень много, что ни о чем не говорит в общем случае.
Если в сообщении указано слово [FORM], то эта блокировка возникла в момент, когда пользователь запустил операцию, работающую с этим экземпляром и работает в ней (блокировка по форме).
В другой сессии при попытке изменить этот же экземпляр пользователь получает такое сообщение.

Однако, в данном случае ситуация другая: скорее всего здесь блокировка записи в таблице в момент ее обновления.
В некоторых случаях более подробную информацию (кто блокирует) о такой блокировке можно получить, если у Вас запущено системное задание
«Задание поддержки физических блокировок» (в Навигаторе Система / Выполнение заданий по расписанию / Запуск системных заданий)
18.08.2020 15:44
kadr
 
Это обычно строчная блокировка, в списке блокировок она не отображается пока другой процесс не запросит эту же блокировку

нужно самостоятельно запросить эту блокировку и тогда можно будет найти того кто первично заблокировал

на сессии ставим
ALTER SESSION ddl_lock_timeout=600;
пытаемся заблокировать строку (значения взяты из исходного сообщения), тут должны подвиснуть
select * from ibs.z#BS_REQUEST where id=6086643114 for update;

в другой сессии смотрим блокирующие сессии любым удобным способом, например столбец final_blocking_session из v$session

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.