2012-04-03 99 views
4

我在我的應用程序中使用了Spring DATA JPA,它是在休眠狀態下的包裝。 雖然與數據庫的交互在一個點上,我在休眠越來越厚望休眠'無法釋放連接'異常?

Caused by: org.hibernate.exception.GenericJDBCException: Cannot release connection 
    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140) 
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128) 
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) 
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52) 
    at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:478) 
    at org.hibernate.jdbc.ConnectionManager.aggressiveRelease(ConnectionManager.java:429) 
    at org.hibernate.jdbc.ConnectionManager.afterStatement(ConnectionManager.java:304) 
    at org.hibernate.jdbc.AbstractBatcher.closePreparedStatement(AbstractBatcher.java:572) 
    at org.hibernate.jdbc.AbstractBatcher.closeStatement(AbstractBatcher.java:291) 
    at org.hibernate.jdbc.AbstractBatcher.closeQueryStatement(AbstractBatcher.java:307) 
    at org.hibernate.jdbc.AbstractBatcher.closeQueryStatement(AbstractBatcher.java:234) 
    at org.hibernate.loader.Loader.getResultSet(Loader.java:1967) 
    at org.hibernate.loader.Loader.doQuery(Loader.java:802) 
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274) 
    at org.hibernate.loader.Loader.doList(Loader.java:2533) 
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276) 
    at org.hibernate.loader.Loader.list(Loader.java:2271) 
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:452) 
    at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363) 
    at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) 
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268) 
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) 
    at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:246) 

連接處理是內部處理,我們並沒有明確釋放或關閉連接。

我不知道如何解決這個問題..

+0

我不認爲這是一個Spring數據相關的問題。你介意加入數據源配置或您的通用JPA基礎設施se tup? – 2012-04-22 09:10:48

+0

這是我的數據庫配置: <資源auth =「Container」defaultAutoCommit =「false」defaultTransactionIsolation =「2」driverClassName =「com.mysql.jdbc.Driver」maxActive =「100」maxIdle =「30」maxWait = 「10000」name =「jdbc/projectDB」password =「password」type =「javax.sql.DataSource」url =「jdbc:mysql:// localhost:3306/database」username =「user」validationQuery =「SELECT 1 from雙重「/> – dhroove 2012-05-09 04:52:52

回答

3

我終於得到了解決。我通過爲數據庫設置一些額外的配置來解決這個問題。

下面是詳細鏈接:http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

在一言以蔽之(「testOnBorrow」,‘testOnReturn’,‘testWhileIdle’),這些都是我刪除上面的異常所扮演的參數在某些時候 上面的異常顯示。一次我們的數據庫連接對象得到某種方式失效,但這些設置可以幫助我們保持我們的檢查數據庫連接。

乾杯:)

+0

這是另一篇文章,我發現有用的同時調查問題。:http://info.michael-simons.eu/2011/11/21/fixing-hibernate-cannot-release-connection-exception-using-dbcp - 和MySQL的/ – user1242321 2015-09-28 23:23:51