【发布时间】:2016-04-22 10:22:49
【问题描述】:
<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 连接。 但现在它在我发出第一个请求后打开第一个连接。然后它在池中可用。
我怎样才能在开始时打开所有连接?
【问题讨论】:
-
你怎么知道它只是打开了一个而不是两个?
-
基于响应时间。第一次连接需要更多时间。第一次调用后,连接将立即返回。如果我与第一次请求并行进行另一个调用,它再次需要很长时间。如果 2连接已经初始化,那么并行应该很快。
-
我建议您应该检查数据库中的活动连接而不是消耗的时间。如果你使用MySql,你可以参考这个。 stackoverflow.com/questions/7432241/…
-
现在我意识到它在启动时没有打开指定的连接数。但是在我第一次向数据库请求期间,它打开了指定的连接数并在池中缓存。
标签: java database apache database-connection pool