我可能会说,这是一个相当大的问题。JDBC连接池问题
我正在使用弹簧BasicDataSource来设置数据库连接的Java Web应用程序。我正在本地测试应用程序,它工作得很好......但是,当应用程序在线时,在某些时候连接到数据库只是停滞不前。我不是在研究连接池,而是我发现在每个新的HTTP请求中,我执行了一些查询,新的池被创建。据我所知,池被引入是可重用的,而不是每次涉及新的数据库访问时创建的。或者我错了?
这里是我的春天数据源配置:
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="url"/>
<property name="username" value="username"/>
<property name="password" value="password"/>
<property name="defaultAutoCommit" value="true"/>
<property name="defaultTransactionIsolation" value="1"/>
<property name="initialSize" value="0"/>
<property name="maxActive" value="20"/>
<property name="minIdle" value="0"/>
</bean>
比我还配置:
<bean id="EventDao" class="my.managament.database.class">
<property name="dataSource" ref="dataSource"/>
</bean>
而且mainPageController它处理发送到应用程序
<bean id="mainController" class="my.management.main.controller.class">
所有的HTTP请求
在剩下的应用程序中,我使用gedDatabase()获取数据库连接,并通过JDBCTemplate进行选择。
我在哪里出错?
谢谢
我不确定是否意味着要创建一个新的连接,而不是说每个请求都会创建一个新的连接池。如果不是,这确实是一个大问题。我可以建议你编辑问题,以包括为什么你认为每次请求都会重新创建池。 – 2010-08-20 21:46:18
对不起,我认为我很清楚...我试图做的只是创建一个连接,考虑到将创建新的池,但也重用...不是每个请求创建新池...在1000个请求中,我调用了数十个池。 – k00 2010-08-20 22:17:50
如果它有任何帮助,我已经实现了这个很像教程在这里描述:http://www.vogella.de/articles/SpringJDBC/article.html 我希望有人有同样的问题,并设法修复它......或者如果有人有教程,显示正确的方式来实现这一点。 – k00 2010-08-20 23:17:13