Hi list, we're running Tomcat 5.5 here on Debian Edge, MySQL 5 and we've set up a connectionpool.
Example of context.xml: <?xml version="1.0" encoding="UTF-8"?> <Context> <Resource auth="Container" description="DB Connection for SSO" name="jdbc/SSODS" type="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory" driverClassName="com.mysql.jdbc.Driver" username="xxx" password="xxx" url="jdbc:mysql://db:3306/apacheSSO" maxIdle="5" maxWait="10000" maxActive="10" validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" timeBetweenEvictionRunsMillis="10000" minEvictableIdleTimeMillis="28800" poolPreparedStatements="true" removeAbandoned="true" removeAbandonedTimeout="300" logAbandoned="false"/> </Context> Unfortunately, we always get an exception after 8 hours of inactivity like 2007-07-09 02:10:16,739 ERROR [TP-Processor7]: Exception performing authentication com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Communications link failure during commit(). Transaction resolution unknown. at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:888) at com.mysql.jdbc.Connection.commit(Connection.java:2259) at org.apache.catalina.realm.JDBCRealm.getPassword(JDBCRealm.java:568) at org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java:399) at org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java:347) at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:257) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:416) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:392) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) 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) That means, the session has timed out, Tomcat tries to re-authenticate via a JDBC-Realm, but the connection to the database is gone. It works on the 2nd try, however, I'd like to get rid of that exception in our logs. In an article on MySQL-dev it is said, that, to avoid such a scenario, one shoudl either use connection-pooling, use exception-handling or shoudl use the MySQL-autoconnect-feature: http://dev.mysql.com/doc/refman/5.0/en/connector-j-usagenotes-troubleshooting.html#qandaitem-24-4-5-3-4 On the other hand they've issued a warning not to use the "autoreconnect"-feature since this might be a secirity-issue. Now my question to you: How do you handle this when using a connection-pool? Just live with those exceptions occuring once or twice a day? Catch the exception and do nothing (not even propagate them to your logs (something I really dislike))? Or is their a trick so that I can convince Tomcat *not* to throw this Exception? Looking forward to your valued comments! Gregor -- what's puzzlin' you, is the nature of my game gpgp-fp: 79A84FA526807026795E4209D3B3FE028B3170B2 gpgp-key available @ http://pgpkeys.pca.dfn.de:11371 --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]