Я использую Oracle
ODP.NET
разъем для подключения к серверу базы данных Oracle
.Oracle Managed ODP.NET: подключение принудительно закрыто из-за сетевой ошибки
Проблема в соединении иногда теряется из-за нескольких различных проблем (например, сбоя сети или сервер принудительно закрывает соединение одноранговым узлом). Это вызывает неперехваченное исключение, потому что я не могу поймать исключения, пока объект соединения не используется в запросе или во время простоя приложения.
Вопрос в том, как я могу уловить Oracle
Исключения связи при отключении соединения? Есть ли какая-либо технология обратного вызова или что-то, что может сообщить мне об отключении?
Не могли бы вы рассказать нам немного больше о том, зачем вам это нужно? Вы все равно не используете соединение, и как только вы попытаетесь, вы поймете, что есть проблема. –
Один объект соединения используется во многих местах моего приложения. Я хочу быть уверенным, что соединение действительно, когда оно используется. Мне нужно отредактировать много строк кодов, чтобы поймать и исправить отключение (я сделаю это, если не будет другого пути). Поэтому я хочу перехватить исключение разъединения и попытаться восстановить соединение еще раз, чтобы другие места (где использовался объект соединения) даже не замечали, что отключение произошло секунду назад. Что происходит, когда происходит отключение? Какое состояние получает объект соединения при нарушении соединения? –
Можете ли вы просто вернуть соединение с пулом соединений OracleConnection после того, как вы его использовали, и получить еще один, когда вам это нужно? Легко настроить пул соединений, чтобы убедиться, что соединение, которое оно распределяет, всегда действует. (используйте Validate Connection = true) http://docs.oracle.com/html/E10927_01/featConnecting.htm –