2016-04-22 112 views
0
<beans:bean id="scimDataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
     <beans:property name="driverClassName" value="${oracle.driver}" /> 
     <beans:property name="url" value="${oracle.url}" /> 
     <beans:property name="username" value="${oracle.user}" /> 
     <beans:property name="password" value="${oracle.password}" /> 
     <beans:property name="initialSize" value="2" /> 
     <beans:property name="maxActive" value="15" /> 
     <beans:property name="maxIdle" value="3" /> 
    </beans:bean> 

这是用于创建池的配置。 我希望在应用程序启动后立即打开2连接。 但是现在它在我发出第一个请求之后打开第一个连接。然后在池中可用。如何在应用程序部署后立即打开所有连接?

我怎样才能打开开始本身的所有连接?

+1

你怎么知道它只是打开一个而不是两个? –

+0

基于响应时间,它会花更多时间进行第一次连接。第一次调用后,连接将立即返回。如果我再次调用并行的请求,首先请求再次花费很长时间。如果已经初始化2个连接,则并行应该快。 –

+0

我建议你应该检查数据库中的活动连接而不是耗时。如果你使用MySql,你可以参考这个。 http://stackoverflow.com/questions/7432241/mysql-show-status-active-or-total-connections –

回答

2

https://commons.apache.org/proper/commons-dbcp/configuration.html

paramenter INITIALSIZE - 当池已启动所创建的连接的初始数量。

+0

但它一开始就没有开放。只要我打第一个电话,它的开幕。我还需要在代码或参数中添加什么? –

+0

那么,testOnCreate参数呢?我明白了,Santosh具有initialSize参数并且仍然不起作用,我假设?不会testOnCreate实际打开连接,无论原因他为什么要这样做?或者运行validationQuery? – holmicz

+0

也许这不是游泳池的问题,而是春天不加载豆的问题。 [Stack Overflow question](http://stackoverflow.com/questions/6684451/executing-a-java-class-at-application-startup-using-spring-mvc) – Patrick

相关问题