Steven,
That usually means that something along the line (and not the client) decided the TCP/IP connection should be terminated. Are there any firewalls/routers, etc. in between your application and the MySQL server?
Do you have "wait_timeout" on the MySQL server set to something other than the default of 8 hours?
How long do any of these connections sit idle? If it's more than a few minutes, I'd consider configuring your connection pool to not let connections sit idle for more than a minute or so, leaving connections idle exposes them to more risk of being disconnected outside of the control of the client. It doesn't take long to create a new JDBC connection with MySQL, a fraction of a second in nearly all cases, and a few 10's of milliseconds in the best cases.
You can make sure that TCP keep-alive is enabled on the JDBC connection, by adding "tcpKeepAlive=true" as a JDBC URL parameter, if you're using Connector/J 5.0.7 or newer.
-Mark
-Mark
Mark Matthews
Consulting Member Technical Staff - MySQL Enterprise Tools
Oracle
http://www.mysql.com/products/enterprise/monitor.html