在生产服务器上,有时随机连接失败到ORacle数据库.我得到了很多
Oracle.DataAccess.Client.OracleException 池化连接请求超时 在Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx*pOpoSqlValCtx,Object src,String procedure,Boolean bCheck, Int32 isRecoverable)位于路径中ws.DataConnection()的Oracle.DataAccess.Client.OracleConnection.Open()上的Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,Object src).
我搜索了一些解决方案,但没有运气.奇怪的是,Exception没有像Ora-123那样的标识符......我使用了OracleDataAccess客户端.有时这个问题是5-10秒,有时我必须重新启动IIS(6.1,Windows Server 2008 R2)才能解决问题.令人沮丧...我不能设置pooling = false因为我们有一个庞大的网站.有解决方案吗
我所知道的最常见的原因是无法正确处理与Oracle.DataAccess.Client关联的IDisposable对象.
可能有一些代码没有正确处理某些对象.这将导致Oracle保留实际未使用的连接,从而导致池中的可用连接用完.重新启动IIS解决了它,因为它会杀死所有这些连接.
仔细检查您的代码,确保所有IDisposable对象都正确处理或封装在using语句中.