Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I use a MySQL database running on a Windows box, and for performance reasons I'm connecting to it using named pipes.

The (Java) application using the database (through Hibernate) can let the connection lie idle for quite a long time, which causes the connection to fail with the following message:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 33 558 297 milliseconds ago. The last packet sent successfully to the server was 33 558 297 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.

autoReconnect unfortunately has no effect (and neither does autoReconnectForPools), but the wait_timeout docs state that wait_timeout only applies "to TCP/IP and Unix socket file connections, not to connections made via named pipes, or shared memory".

How can I change the wait_timeout for named pipes?

share|improve this question

1 Answer 1

up vote 1 down vote accepted

Depending on how you are configuring your datasource, you may be able to specify a setting like idle-timeout-minutes. If wait_timeout were set to 5 minutes, set idle-timeout-minutes to 4.

The only two timeout values that can be specified for MySQL connections are wait_timeout and interactive_timeout. interactive_timeout could potentially apply to named pipes too, if it connected as a client would.

If I recall correctly if neither wait_timeout or interactive_timeout are specified, the default is 28800.

share|improve this answer
    
Thanks, but this does unfortunately not really apply to my setup. –  gustafc May 12 '10 at 8:10
    
How's that? I think you're confused. –  Warner May 12 '10 at 13:13
    
Maybe I am :) I finally solved the problem doing pretty much exactly the thing you suggested, by having my connection pool validate connections before handing them out if they had been idle more than X timeunit. Consider your answer... accepted. –  gustafc May 19 '10 at 8:10
    
Glad it worked out for you! This was a frustrating issue when I first encountered it. –  Warner May 19 '10 at 13:08

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.