java.net.SocketException: Software caused connection abort: socket write error解决

框架:hibernate3 + spring。

原来这个项目都是用的时候才连接Mysql,最近挪到服务器上了,处于一直打开服务的状态,就出现了java.net.SocketException: Software causedconnection abort: socket write error这个异常。

在网上搜索的结果是因为Mysql服务器默认的“wait_timeout”是8小时,如果一个connection空闲超过8个小时,则Mysql将自动断开该 connection,这样就出现了上面这个问题。

解决该问题的方法有两种:

1、在mysql安装目录下找到my.ini文件中添加超时限制:在该文件最后添加一行:wait_timeout=2880000。

这样把之前的超时限制把8小时(28800)扩大为800小时。这样重启了mysql后再在其中输入命令:show global variables like "wait_timeout";查看超时是否已修改为:2880000。重启tomcat。

 

2、通过c3p0的idleConnectionTestPeriod来控制。可以将它的值设定的比Mysql的默认wait_timeout小就行了,如下:

<property name="idleConnectionTestPeriod" value="18000"/>

 

 

from:http://hi.baidu.com/luoting2762/blog/item/55c2e0f0734320da7831aa79.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,"jedis java.net.SocketException: Software caused connection abort"异常通常是由于网络连接问题或Redis服务器故障引起的。这个异常表示在与Redis服务器建立连接时,连接被意外中断或终止。 以下是一些可能导致此异常的原因和解决方法: 1. 网络连接问题:检查网络连接是否正常,确保可以正常访问Redis服务器。可以尝试使用ping命令来测试与Redis服务器的连接。 2. Redis服务器故障:如果Redis服务器出现故障或崩溃,可能会导致连接中断。在这种情况下,需要检查Redis服务器的日志文件以获取更多信息,并尝试重新启动Redis服务器。 3. 连接超时:如果连接超时时间设置得太短,可能会导致连接中断。可以尝试增加连接超时时间来解决此问题。在Jedis客户端中,可以使用`JedisPoolConfig`类的`setConnectionTimeout`方法来设置连接超时时间。 4. 连接池问题:如果使用连接池管理连接,可能会出现连接池耗尽或连接泄漏的问题。可以尝试增加连接池的最大连接数或检查代码中是否正确释放连接。 5. 防火墙或代理问题:防火墙或代理服务器可能会阻止与Redis服务器的连接。请确保防火墙或代理服务器允许与Redis服务器的通信。 请注意,以上是一些常见的解决方法,具体的解决方法可能因环境和具体情况而异。如果问题仍然存在,请提供更多详细信息以便进一步帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值