錯誤描述:java.sql.SQLException: Couldn't perform the operation setAutoCommit: You can't perform any operations on this connection. It has been automatically closed by Proxool for some reason (see logs).
at org.logicalcobwebs.proxool.WrappedConnection.invoke(WrappedConnection.java:207)
at org.logicalcobwebs.proxool.WrappedConnection.intercept(WrappedConnection.java:87)
at $java.sql.Connection$$EnhancerByProxool$$c663b102.setAutoCommit(<generated>)
at org.hibernate.transaction.JDBCTransaction.toggleAutoCommit(JDBCTransaction.java:224)
at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransaction.java:169)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:142)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1822)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
ERROR 2013-05-22 18:32:20,839 org.hibernate.transaction.JDBCTransaction: JDBC commit failed
java.sql.SQLException: Couldn't perform the operation commit: You can't perform any operations on this connection. It has been automatically closed by Proxool for some reason (see logs).
at org.logicalcobwebs.proxool.WrappedConnection.invoke(WrappedConnection.java:207)
at org.logicalcobwebs.proxool.WrappedConnection.intercept(WrappedConnection.java:87)
at $java.sql.Connection$$EnhancerByProxool$$c663b102.commit(<generated>)
at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransaction.java:166)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:142)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:656)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1822)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
解決方法:錯誤的意思是說,由於某些原因連接被Proxool自動關閉,出現這種情況,一般有如下原因:
1.可能為連接數據庫超時,比如調試時,對一個窗口停留太久。(對Lucene建立的站內搜索時,俺就出現了這個錯誤~)
2.網上的說法:
<proxool.minimumConnectionCount>5</proxool.minimumConnectionCount>//最小連接數
<proxool.maximumConnectionCount>150</proxool.maximumConnectionCount>//最大連接數
<proxool.simultaneousBuildThrottle>20</proxool.simultaneousBuildThrottle>//同時最大連接數
連接數夠用,但是同時最大連接數設置的小了點,取不到連接導致報錯。
轉載請標明: