我已经使用MYSQL 5.1 db和Tomcat 7构建了一个(相对)简单的JSF应用程序。事情没有什么大起大落,但有好奇心...JSF应用程序创建了太多的数据库连接
使用MySQL工作台,我可以看到,在一段时间内,我建立了一个不断增加的永远不会释放的数据库连接列表。每个人都有格式:
[id] [user] [host] [dbname] [command] [time] [State] [info]
国家始终是空白,命令始终是“休眠”。
当我打开和关闭连接,语句时,我正在遵循最佳实践,并且据我所知,我的ManagedBeans没有任何持久连接到数据源,所有这些连接都应尽快脱离范围我在页面之间切换。
我在努力寻找答案,这部分是因为我不太确定在哪里寻找答案。有什么建议评论/排除故障,有没有一些常见的JSF/DBCP陷阱我不知道?
这可能是有用的:
<Resource
name="jdbc/TrackerDB"
auth="Container"
type="javax.sql.DataSource"
maxActive="20"
maxIdle="10"
maxWait="100"
username="xxxx"
password="xxxx"
removeAbandoned="true"
removeAbandonedTimeout="300"
logAbandoned="true"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/tracker"
/>
已经这样做了,它的JDBC和所有打开的东西都被正确关闭了。 – JHarnach 2011-02-27 20:30:18
@JHarnach DBCP的maxIdle配置是什么?默认值是8. – extraneon 2011-02-27 20:40:01
已编辑原始帖子,yes结果集也会被关闭。 – JHarnach 2011-02-27 20:52:03