0
我有一個在Tomcat 7下運行的Grails應用程序,並且在管理MySQL連接時遇到問題。Grails/Tomcat:數據庫連接陷入睡眠狀態
問題是,每個對應用程序的新請求(即頁面加載)都會創建一個新的MySQL連接,並且這些連接不會關閉。相反,他們保持睡眠狀態,直到MySQL服務器最終拒絕接受更多連接。因此,只需通過快速重新加載網站上的各個頁面,就可以創建大量的數據庫連接。
所以看來我的連接池並沒有足夠快地關閉與MySQL的連接。連接池有許多配置設置,但我不確定需要調整什麼來避免此問題。
這裏是我的context.xml文件配置:
<Resource name="jdbc/Production" auth="Container" type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
minEvictableIdleTimeMillis="1800000"
timeBetweenEvictionRunsMillis="1800000"
numTestsPerEvictionRun="3"
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true"
testOnBorrow="true"
testWhileIdle="true"
testOnReturn="true"
validationQuery="SELECT 1"
username=""
password=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/Production"
/>
非常感謝您的任何建議。
我試着按照你的建議添加JDBC Pool插件。但是,我仍然看到相同的行爲,當網站上的任何頁面刷新得非常快時,會創建多個MySQL連接。 連接最終會消失,但只有在服務器上的負載增加到非常高以致無法使用時纔會消失。 對於如何調試此行爲,您有任何建議嗎? – user2156803 2013-03-12 10:29:30
@ user2156803你能告訴我堆棧跟蹤消息嗎? – coderLMN 2013-03-12 14:36:18