Есть ли способ гарантировать, что приложение не преминет освободить блокировки строк в Oracle? Если я обязательно поставлю фиксаторы в блоках finally, которые обрабатывают случай непредвиденных ошибок, но что, если процесс приложения просто внезапно умрет до того, как он совершит (или кто-то ударит кабель питания/кабель lan).Оказывает ли Oracle автоматическое откат заброшенных сеансов?
Есть ли способ заставить Oracle автоматически откатывать сеансы бездействия после X-го времени? Или откат, когда я каким-то образом обнаружил, что соединение было потеряно?
Из проведенных экспериментов, если я завершаю процесс приложения до его фиксации, блокировки строк остаются навсегда, пока я не войду в базу данных и вручную не закрою сеанс.
Спасибо.
Это звучит как ответ. Существуют ли какие-либо серьезные недостатки в использовании этой функции? Почему Oracle не делает это по умолчанию? Документы перечисляют несколько недостатков, но я не вижу, как любой из них оправдывает отключение этой функции по умолчанию. – jthg
Что делать, если ваши запросы занимают 2 часа? :) – bwawok
Согласно связанной документации, он просто проверяет, жив ли клиент после EXPIRE_TIME. Если клиент отвечает каждый раз, запрос может занять столько времени, сколько потребуется. – jthg