我有一个运行Java应用程序交谈,在同一实例上运行的MySQL实例的机器。 应用程序使用jdbc4司机从MySQL。 我一直在随机时间越来越com.mysql.jdbc.exceptions.jdbc4.CommunicationsException。
这里是整个消息。
无法打开交易JDBC连接; 嵌套的例外是
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.
对于MySQL,全球“WAIT_TIMEOUT”和“interactive_timeout”的值设置为3600秒和“connect_timeout”设置为60秒。 等待超时值小于26秒(25899毫秒)要高得多。 在异常跟踪提及。
我使用DBCP连接池,这里是春天的bean配置为数据源。
<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>
任何想法,这可能是为什么发生? 使用C3P0将解决这个问题?