2011-04-15 156 views
2

我們在Tomcat 5.5.27,PostgreSQL 8.3上使用Liferay Portal 5.2.3(帶有Hibernate和C3P0)。 通常情況下,c3p0會將連接集中並將其返回以供重用。但有時我們需要大量更新,並且postgreSQL在關閉後不會釋放連接(我們可以看到100個IDLE連接)。此外,該問題僅在Linux(Debian 5.0)上重現。 連接由獨立的線程建立,在run()方法的finally塊中,我們總是關閉它。 我試過不使用池並寫了簡單的DBConnection管理器(getConnection() - > runQuery() - > closeConnection()),但PostgreSQL沒有發佈它。PostgreSQL沒有關閉連接

+0

不擁有這些閒置的連接出現問題了?檢查c3p0文檔以瞭解如何設置最大空閒連接數。 – 2011-04-15 14:53:35

+0

是的,這是一個嚴重的問題 - 我們得到了一個錯誤'已經有太多用戶'(並且我們無法將連接數增加到無窮大)。我使用c3p0設置 - 它調用connection.close(),但在Postgre方面它仍然處於空閒狀態。正如我所提到的,我也嘗試過在沒有c3p0的情況下使用它。 – ninja 2011-04-15 14:58:23

回答

0

呵呵......這是在代碼中的問題(一個壞人沒有關閉連接)