Ряд хранимых процедур, которые я поддерживаю для запросов к удаленным базам данных по глобальной сети. Время от времени сеть отключается, но худшее, что когда-либо случалось, это неудачные процедуры, которые нужно будет перезапустить.
Последние пару недель он принял зловещий оборот. Вместо сбоя процедуры зависают в странном заблокированном состоянии. Они не могут быть уничтожены внутри Oracle, и пока они существуют, любая попытка запустить другие копии процедуры также будет зависать. Единственное решение, которое мы нашли, - убить оскорбительные процедуры с помощью «kill -9» из ОС. Некоторые из этих процедур не менялись месяцами, даже годами, поэтому я подозреваю, что причина в конфигурации БД или БД.
У кого-нибудь есть идеи о том, что мы можем сделать, чтобы решить проблему? Или у PL / SQL есть механизм тайм-аута, который я могу добавить в код, чтобы я мог создать исключение, которое я могу обрабатывать программно?