连接未关闭Spring与tomcat 5.5

时间:2011-06-18 20:28:53

标签: spring connection-pooling apache-commons-dbcp

我们正在使用带有spring framework 2.0的j2ee应用程序。使用的服务器是tomcat 5.5。使用的数据库是mysql。我们使用VPS来托管我们的应用程序,我们注意到使用我们的应用程序的用户越多,CPU使用率就越高。一旦用户停止使用该应用程序,CPU使用率就不会降低。这是没有正确关闭的连接还是有任何其他问题?

以下是连接的servlet.xml配置

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource">
      <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost/myDB"/>
    <property name="username" value="xxxx"/>
    <property name="password" value="xxxx"/>
    <property name="validationQuery" value="SELECT 1"/>
      <property name="testOnBorrow" value="true"/>
    </bean>

我们也尝试过使用

<bean id="myDataSource"
       class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost/myDB"/>
    <property name="username" value="xxxx"/>
    <property name="password" value="xxxx"/>
 </bean>

但他们两个都会导致同样的问题。任何人都可以快速帮助我们吗?因为我们最早需要纠正这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:0)

某些连接池问题不太可能导致高CPU使用率。这可能是您的应用程序代码中的错误。您是否监控了数据库连接 - 它们是否已正确发布和关闭?

顺便说一句,我建议您切换到Tomcat内置的本机连接池。它可以作为Tomcat中实现的伪JNDI的标准Java EE资源获得。