我已經使用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