У меня есть приложение ASP.Net 2.0 с балансировкой нагрузки (не использующее состояние сеанса) на IIS5, которое работает на одном сервере Oracle 10g с использованием драйверов ODAC / ODP.Net версии 10.1.0.301. После длительного периода бездействия (несколько часов) приложение, по-видимому, случайным образом выдаст исключение Oracle:
Исключение: ORA-03113: конец файла на канале связи в
Oracle.DataAccess.Client.OracleException.HandleErrorHelper (Int32
errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx *
pOpoSqlValCtx, Object src, процедура String) в
Oracle.DataAccess.Client.OracleCommand.ExecuteReader (логический запрос,
Булево заполнениеRequest, поведение CommandBehavior) в
Oracle.DataAccess.Client.OracleCommand.System.Data.IDbCommand.ExecuteReader ()
... Часть стека Oracle заканчивается здесь ...
Мы создаем новые соединения при каждом запросе, открываем и закрываем в try / catch / finally, чтобы обеспечить правильное закрытие соединения, и все это заключено в блок using (OracleConnection yadayada) {...} , Эта проблема, по-видимому, не связана с перезапуском приложения ASP.Net после отключения из-за неактивности.
Нам еще предстоит воспроизвести проблему самостоятельно. Мысли, молитвы, помощь?
Подробнее: Проверено с помощью ИТ, брандмауэр не настроен на разрыв соединений между этими серверами.