Oracle автоматически откатывает оставленные сессии? - PullRequest
1 голос
/ 24 июня 2010

Есть ли способ гарантировать, что приложение не сможет сбросить блокировки строк в Oracle?Если я обязательно помещу операторы commit в блоки finally, это обрабатывает случай непредвиденных ошибок, но что, если процесс приложения просто внезапно умирает, прежде чем он фиксирует (или кто-то отключает шнур питания / кабель локальной сети).

Есть ли способ заставить Oracle автоматически откатывать бездействующие сессии через X времени?Или выполнить откат, когда я каким-то образом обнаружу, что соединение было потеряно?

Из проведенных экспериментов, если я завершу процесс приложения до его фиксации, блокировки строк останутся навсегда, пока я не войду в базу данных и вручнуюубить сеанс.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 24 июня 2010

Попробуйте установить SQLNET.EXPIRE_TIME в вашем sqlnet.ora.

SQLNET.EXPIRE_TIME=10

Из документации :

Цель
Чтобы указать временной интервал в минутах, чтобы отправить проверку, чтобы убедиться, что соединения клиент / сервер активны.

1 голос
/ 24 июня 2010

COMMIT внутри, наконец, вероятно, последнее, что вы должны сделать, поскольку вы (почти) никогда не должны совершать ничего, что вызвало бы исключение.

0 голосов
/ 24 июня 2010

Я не администратор баз данных, поэтому я уверен, что вы можете найти лучшее решение ...

, но существуют определенные тупиковые условия, которые, похоже, не произойдут и сами по себе.У моего последнего администратора базы данных был процесс, который запускался каждую минуту и ​​убивал все, что выполнялось более 10 минут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...