let*_*nje 9 java mysql connection timeout jdbc
我有一台运行java应用程序的机器与在同一实例上运行的mysql实例交谈.该应用程序使用mysql的jdbc4驱动程序.我随机时间不断收到com.mysql.jdbc.exceptions.jdbc4.CommunicationsException.
这是整个信息.
无法打开JDBC Connection进行事务处理; 嵌套异常是
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.
Run Code Online (Sandbox Code Playgroud)
对于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>
Run Code Online (Sandbox Code Playgroud)
知道为什么会发生这种情况吗?请问使用c3p0解决问题?
尝试正确设置Apache Commons DBCP.
你需要设置:
这应该解决问题.
| 归档时间: |
|
| 查看次数: |
7332 次 |
| 最近记录: |