jdbc4 CommunicationsException

Tengo una máquina ejecutando una aplicación java que habla con una instancia de mysql que se ejecuta en la misma instancia. la aplicación utiliza controladores jdbc4 de mysql. Sigo recibiendo com.mysql.jdbc.exceptions.jdbc4.CommunicationsException en momentos aleatorios.

Aquí está el mensaje completo.

No se pudo abrir la conexión JDBC para la transacción; excepción anidada es

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

Para mysql, el valor global de 'wait_timeout' y 'interactive_timeout' se establece en 3600 segundos y 'connect_timeout' se establece en 60 segundos. el valor de tiempo de espera de espera es mucho mayor que los 26 segundos (25899 ms). mencionado en la traza de excepción.

Uso dbcp para la agrupación de conexiones y aquí está la configuración de bean bean para el origen de datos.

   <bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource" >
          <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/db"/>
                <property name="username" value="xxx"/>
                <property name="password" value="xxx" />
                    <property name="poolPreparedStatements" value="false" />
            <property name="maxActive" value="3" />
            <property name="maxIdle" value="3" />
    </bean>

¿Alguna idea de por qué esto podría estar pasando? ¿Usando c3p0 resolverá el problema?

Respuestas a la pregunta(4)

Su respuesta a la pregunta