您好我一直在使用oracle.jdbc.pool.OracleDataSource。我已将最小连接数作为3和最大连接数为10.这是我的连接池配置。
<bean id="datasources" class="oracle.jdbc.pool.OracleDataSource" destroy-method="close">
<property name="connectionCachingEnabled" value="true" />
<property name="URL" value="****" />
<property name="user" value="****" />
<property name="password" value="****" />
<property name="connectionCacheProperties">
<props merge="default">
<prop key="MinLimit">3</prop>
<prop key="MaxLimit">20</prop>
</props>
</property>
</bean>
这是在一个上下文文件中说datasource.xml。此上下文在名为run()的方法中加载。这个run()方法每分钟通过SpringScheduler调用。
我收到DBA的投诉,超过600个连接已打开并仍未使用。我在使用后随处关闭代码中的连接。所以我的问题是关于我在datasource.xml文件中给出的最小连接数。在调度程序间隔期间完成该过程后它是否仍会打开?我的意思是每当我的调度程序加载此配置时,上次打开的连接会发生什么?
编辑1:我甚至分别将MinLimit和MaxLimit更改为0和3。仍然是同一个问题。
我可以从调度程序上下文xml加载DB上下文吗?
编辑2:我根据建议重新设计了我的SB结构。我每次都避免加载数据库配置。相反,我加载了数据库配置以及调度程序配置。现在问题解决了。但是我仍然想知道OracleDataSource中是否有任何选项可以在特定的空闲时间之后删除创建的连接?