我在 IIS5 上有一个负载平衡(不使用会话状态)ASP.Net 2.0 应用程序,它使用 ODAC/ODP.Net 驱动程序的 10.1.0.301 版本运行回单个 Oracle 10g 服务器。在长时间不活动(几个小时)之后,应用程序似乎随机地抛出一个 Oracle 异常:
异常:ORA-03113:Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx* pOpoSqlValCtx* pOpoSqlValCtx,Object src,String 过程)在 Oracle.DataAccess.Client 的通信通道上的文件结尾Oracle.DataAccess.Client.OracleCommand.System.Data.IDbCommand.ExecuteReader() 处的 .OracleCommand.ExecuteReader(布尔重新查询,布尔填充请求,CommandBehavior 行为)
...堆栈的 Oracle 部分到此结束...
我们正在为每个请求创建新连接,将打开和关闭包装在 try/catch/finally 中以确保正确关闭连接,并且整个事情都包装在 using (OracleConnection yadayada) {...} 块中。此问题似乎与 ASP.Net 应用程序因不活动而停止后重新启动有关。
我们还没有自己重现这个问题。思想、祈祷、帮助?
更多:与 IT 核实,防火墙未设置为终止这些服务器之间的连接。