我们正在使用带有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>
但他们两个都会导致同样的问题。任何人都可以快速帮助我们吗?因为我们最早需要纠正这个问题。提前谢谢。
答案 0 :(得分:0)
某些连接池问题不太可能导致高CPU使用率。这可能是您的应用程序代码中的错误。您是否监控了数据库连接 - 它们是否已正确发布和关闭?
顺便说一句,我建议您切换到Tomcat内置的本机连接池。它可以作为Tomcat中实现的伪JNDI的标准Java EE资源获得。