2013-08-21 103 views
1

我使用Hibernate + JSF製作軟件。但是,當我與Hibernate進行會話時,即使關閉了會話(session.close()),連接仍然在MySQL中打開。休眠殺死會話,但連接保持打開

show FULL PROCESSLIST 

2 root localhost:55850 repositorionew Query 0  
5 root localhost:55884 repositorionew Sleep 110  
6 root localhost:55885 repositorionew Sleep 110  
7 root localhost:55886 repositorionew Sleep 110  
8 root localhost:55906 repositorionew Sleep 108  
9 root localhost:55907 repositorionew Sleep 108 

每個會話都會打開,即使使用關閉,也會創建一個連接但不關閉。

有人編輯我的帖子。主要問題是,當連接時間結束時,它不會關閉,而是重新啓動。

+0

您是否在使用彈簧?或者你有任何一種交易管理器?另外,你在使用連接池嗎? – Rafa

+0

這正是問題所在。 C3p0我用來管理連接。但是當我編輯超時時,它不會關閉連接,只會重新啓動。 當超時時間達到您想要的數量時,它會創建一個新的連接。並在達到超時時生成新的連接。不使用Spring。 –

回答

0

這不是連接池的默認行爲嗎?我不認爲這個閉門會議意味着關閉連接。根本不在連接池中。

當您正確關閉您的應用程序時會發生什麼?

+0

有人編輯我的帖子。主要問題是,當連接時間結束時,它不會關閉,而是重新啓動。 –

+0

它將對應於池,因爲池只存儲活動連接的數量等於某個已定義的數量 - 在配置中。 –