From: Shan, G. (GE H. consultant) <Guo...@ge...> - 2009-03-03 06:19:00
|
Hi, I have been using struts + spring + proxool for a few years in B/S system, It works fine. Recently, i have found the following error massage in log file Exception message and stack trace: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [ A Simple SQL Query ]; SQL state [null]; error code [0]; Couldn't perform the operation prepareStatement: You can't perform any operations on this connection. It has been automatically closed by Proxool for some reason (see logs).; nested exception is java.sql.SQLException: Couldn't perform the operation prepareStatement: You can't perform any operations on this connection. It has been automatically closed by Proxool for some reason (see logs). java.sql.SQLException: Couldn't perform the operation prepareStatement: 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.ja va:207) at org.logicalcobwebs.proxool.WrappedConnection.intercept(WrappedConnection .java:87) at oracle.jdbc.internal.OracleConnection$$EnhancerByProxool$$df763430.prepa reStatement(<generated>) at org.springframework.jdbc.core.PreparedStatementCreatorFactory$PreparedSt atementCreatorImpl.createPreparedStatement(PreparedStatementCreatorFacto ry.java:216) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:470 ) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:528) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:553) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:574) at org.springframework.jdbc.object.SqlQuery.execute(SqlQuery.java:102) at org.springframework.jdbc.object.SqlQuery.execute(SqlQuery.java:112) at common.database.DBQueryProcessor.executeQuery(DBQueryProcessor.java:89) at common.dao.impl.LoginDao.getLoginUserInfo(LoginDao.java:159) at common.service.impl.LoginService.getLoginUserInfo(LoginService.java:83) at common.action.LoginAction.login(LoginAction.java:75) at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor Impl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.j ava:270) at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187 ) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestPr ocessor.java:431) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java: 236) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:173) at com.gehc.nozomi.common.filter.AccessFilter.doFilter(AccessFilter.java:53 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte r.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv e.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv e.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs sociationValve.java:175) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j ava:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java :105) at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnecti onValve.java:156) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1 48) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java: 697) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket. java:889) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool .java:684) at java.lang.Thread.run(Thread.java:595) the configuration file of Proxool is: <?xml version="1.0" encoding="UTF-8"?> <proxool-config> <proxool> <alias>XX</alias> <driver-url> jdbc:oracle:thin:@XX.XX.XX.XX:port:SID </driver-url> <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <driver-properties> <property name="user" value="XX" /> <property name="password" value="XX" /> </driver-properties> <maximum-connection-lifetime>7200000</maximum-connection-lifetime> <maximum-active-time>300000</maximum-active-time> <minimum-connection-count>30</minimum-connection-count> <maximum-connection-count>500</maximum-connection-count> <house-keeping-sleep-time>90000</house-keeping-sleep-time> <house-keeping-test-sql> SELECT CURRENT_DATE FROM DUAL </house-keeping-test-sql> </proxool> </proxool-config> the Env of System is : OS: Sun Solaris10 DB: Oracle10g(RAC) JDK: 1.5.6 Framework: Struts 1.0 Spring 1.2.8 DWR 2.0.5 Proxool 0.9.0RC3 This error often happens when we do query operation. For example, when we click on a button in a page to search data from DB,the error page happened. The error massage is shown above.But when we go back and do the same operation on that page, the error will probaly not happen.A moment later, this error may happen again. Would you please give me some advice on this problem? I am looking forward to your reply.Thanks. Best Regards, Joe |