我有一台机器运行一个java应用程序,与在同一实例上运行的mysql实例进行通话。应用程序 使用来自mysql的jdbc4驱动程序。我随机获取com.mysql.jdbc.exceptions.jdbc4.CommunicationsException 。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进行连接池,这里是数据源的spring 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解决问题?
Thnx,这似乎目前正在工作。 – letronje 2009-08-14 10:07:58