Hi All,
I keep getting Connection pool exhausted once in a while on my tomcat
application. Running tomcat-4.1.30 and also tomcat-4.1.24 on Solaris.
j2sdk1.4.2_04 and j2sdk1.4.1_02 resply. Am pretty sure all ResultSets,
Statements and Connections are being closed in the code.
Are the following traces generated by "logAbandoned=true" parameter in
the server.xml? This seems to me just a normal exception logging at not
being able to close the connection. How do the logAbandoned traces look
like so I know what I should look for?
Below are traces from some of my log files, there are two cases
essentially.
Thanks,
Ashima
CASE I:
JDBCRealm[/peak-web]: Exception performing authentication
java.sql.SQLException: Io exception: Broken pipe ( or
java.sql.SQLException: No more data to read from socket sometimes)
at
oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at
oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at
oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:334)
at
oracle.jdbc.driver.OracleConnection.commit(OracleConnection.java:1381)
at
org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java:505)
at
org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java:392)
at
org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:274)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:479)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
JDBCRealm[/peak-web]: Exception closing database connection
java.sql.SQLException: Io exception: Broken pipe
at
oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at
oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at
oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:334)
at
oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1478)
at
org.apache.catalina.realm.JDBCRealm.close(JDBCRealm.java:541)
at
org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java:406)
at
org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:274)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:479)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
CASE II:
StandardHost[localhost]: Removing web application at context path
/peak-web-test
JDBCRealm[/peak-web-test]: Exception closing database connection
java.sql.SQLException: No more data to read from socket
at
oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at
oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:1160)
at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:963)
at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:893)
at oracle.jdbc.ttc7.Ocommoncall.receive(Ocommoncall.java:104)
at oracle.jdbc.ttc7.TTC7Protocol.logoff(TTC7Protocol.java:391)
at
oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1472)
at
org.apache.catalina.realm.JDBCRealm.close(JDBCRealm.java:514)
at
org.apache.catalina.realm.JDBCRealm.stop(JDBCRealm.java:702)
at
org.apache.catalina.core.StandardContext.stop(StandardContext.java:3703)
at
org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:1036)
at
org.apache.catalina.core.StandardHostDeployer.remove(StandardHostDeployer.java:470)
at
org.apache.catalina.core.StandardHost.remove(StandardHost.java:852)
at
org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:758)
at
org.apache.catalina.startup.HostConfig.stop(HostConfig.java:738)
at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:360)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
at
org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1221)
at
org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1233)
at
org.apache.catalina.core.StandardService.stop(StandardService.java:554)
at
org.apache.catalina.core.StandardServer.stop(StandardServer.java:2225)
at
org.apache.catalina.startup.Catalina.start(Catalina.java:543)
at
org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
at
org.apache.catalina.startup.Catalina.process(Catalina.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
|