Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
Java-Orcale无法为事务打开JDBC连接_Java_Oracle_Tomcat_Ojdbc - Fatal编程技术网

Java-Orcale无法为事务打开JDBC连接

Java-Orcale无法为事务打开JDBC连接,java,oracle,tomcat,ojdbc,Java,Oracle,Tomcat,Ojdbc,我正在从事一个非常非常大但实施不力的项目,我们有一个与de数据库相关的重大性能问题。 我们正在使用Oracle、exadata和bla-bla-bla。 应用服务器:tomcat 潜水员:ojdbc6 下一步配置: <property name="connectionCachingEnabled" value="true" /> <property name="connectionCacheProperties">

我正在从事一个非常非常大但实施不力的项目,我们有一个与de数据库相关的重大性能问题。 我们正在使用Oracle、exadata和bla-bla-bla。 应用服务器:tomcat 潜水员:ojdbc6

下一步配置:

<property name="connectionCachingEnabled" value="true" />
<property name="connectionCacheProperties">
<value>
MinLimit:180
MaxLimit:200
InitialLimit:50
ConnectionWaitTimeout:120
InactivityTimeout:180
....

最低限额:180
最高限额:200
首字母上限:50
ConnectionWaitTimeout:120
不活动时间:180
....
该应用程序几乎有15个模块独立运行,但也有一些模块包含其他模块并使用其数据源

是的,我知道。。。你在想什么。当我到达的时候,已经是这样了,我需要修补它,同时团队也在努力 重组

问题是,15个模块应该有200个连接,但有了这个意大利面,每个模块也需要包括的模块连接

这是一道连接汤

但在这一点上,问题是一些模块无法接受其200个连接,因为数据库没有更多的资源,所以。。。。与“ConnectionWaitTimeout”配置相关,它向池返回一个空值,并显示下一条消息:

无法为事务打开JDBC连接;嵌套异常为java.lang.IllegalArgumentException:连接不能为null

检查数据库大多数模块需要200个连接,但只有7个活动和197个非活动

我找不到合适的配置来释放不活动的配置


我使用了InactivityTimeout和放弃ConnectionTimeout,但问题仍然存在。

不分析应用程序,我们就可以推测为什么会出现此问题

  • 自从创建了197个连接(超过180个)以来,应用程序似乎已经从池中请求了这么多连接
  • 由于非活动超时没有帮助,我们必须假设应用程序仍然保留连接
  • 现在,由于放弃超时没有帮助,有两种可能性。
    A) 应用程序确实在超时期间查询数据库。
    B) 池已回收连接,应用程序应已捕获异常并重试

  • 我建议您了解其中一个模块中的代码,以了解连接使用模式。

    MinLimit:180
    听起来好像池将始终打开至少180个连接(并将它们保持打开状态)。将其设置为例如5会改变什么吗?当我们将其更改为较低的值时,结果是sameYes,您是对的,应用程序的负载峰值会导致数据库消耗,但我需要找到在峰值后断开连接的方法。