On 2010-07-21 07:37, Minhaj wrote: > Hi, > > I'm facing the following problem when I'm trying to access database in the > morning. which means after use application after being 7+ hours idle. I even > tried to append autoReconnect=true into db connection string but no luck yet > :( and the most strangest thing is that this error rise only once in very > first query, but when i try next time it works perfectly alright. > > Anyone ever faced such issue?
Yes. What happens is that the MySQL server closes the connecion at the server end, due to it not being used for an extended period of time. In our experience this timeout is 8 hours. The server does not notify DBCP or the calling application. So you end up with a JDBC connection on the Java end that is unusable. What you need to do is make sure that each connection in the pool is used every 8 hours or less. I don't use DBCP myself, but there usually is a timer you can set in a connection pool that runs a really simple keep-alive query in a given interval. > > > 2010-07-21 07:00:48,554 WARN (JDBCExceptionReporter.java:100) > [org.hibernate.util.JDBCExceptionReporter, logExceptions] - SQL Error: 0, > SQLState: 08S01 > 2010-07-21 07:00:48,555 ERROR (JDBCExceptionReporter.java:101) > [org.hibernate.util.JDBCExceptionReporter, logExceptions] - The last packet > successfully received from the server was 677,246,024 milliseconds ago. The > last packet sent successfully to the server was 677,246,024 milliseconds > ago. is longer than the server configured value of 'wait_timeout'. You > should consider either expiring and/or testing connection validity before > use in your application, increasing the server configured values for client > timeouts, or using the Connector/J connection property 'autoReconnect=true' > to avoid this problem. > > > > Thanks are in advance. > -- Dennis Lundberg --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
