Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle ORA-02396:超过最大空闲时间,请重新连接错误_Oracle_Connection Pooling - Fatal编程技术网

Oracle ORA-02396:超过最大空闲时间,请重新连接错误

Oracle ORA-02396:超过最大空闲时间,请重新连接错误,oracle,connection-pooling,Oracle,Connection Pooling,我有一个ASP.NETMVC应用程序连接到Oracle数据库。我在控制器中使用LINQ从Oracle DB中提取数据 如果该页被加载,几分钟后如果其空闲,则给出上述错误 现在我不能要求DBA增加空闲时间。在我的研究中,我在Web.config文件中提到了池。我的理解是,由于池,其中一些连接仍然处于活动状态。我已经把这部分移走了 最小池大小=1;最大池大小=20;池=真 我是否必须在我的Web.config中明确指出: 池=假 我的控制器中还有如下的Dispose功能,但这没有帮助: protec

我有一个ASP.NETMVC应用程序连接到Oracle数据库。我在控制器中使用LINQ从Oracle DB中提取数据

如果该页被加载,几分钟后如果其空闲,则给出上述错误

现在我不能要求DBA增加空闲时间。在我的研究中,我在Web.config文件中提到了池。我的理解是,由于池,其中一些连接仍然处于活动状态。我已经把这部分移走了

最小池大小=1;最大池大小=20;池=真

我是否必须在我的Web.config中明确指出:

池=假

我的控制器中还有如下的Dispose功能,但这没有帮助:

protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                db.Dispose();
            }

            base.Dispose(disposing);
        }

请帮助。

为什么不能要求DBA更改允许的空闲时间?对来自中间层服务器的池连接设置空闲时间限制是没有意义的。您可以在每次加载页面时强制应用程序创建新的物理连接。但这是非常昂贵的(无论是从数据库的角度还是从应用程序运行时和可伸缩性的角度),要求DBA进行更改并没有多大帮助,因为我知道我们的站点上有一些很久以前构建的应用程序,它们工作得很好。但这些应用程序使用System.Data.OracleClient作为提供商,我认为现在已经不推荐使用它了。我正在使用ODP.Net提供程序的Oracle.ManagedDataAccess.Client。空闲时间是用户帐户的设置。您的应用程序可能正在使用某种服务帐户连接到数据库。连接池中的中间层使用的服务帐户的空闲时间设置不是无限的,这是没有意义的。用于客户机/服务器连接的帐户具有该设置是有意义的。使用的技术不是材料。