Connection reset by peer: socket write error错误分析及解决
Connection reset by peer: socket write error错误分析:
常出现的Connection reset by peer: 原因可能是多方面的,不过更常见的原因是:
①:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉; ②:客户关掉了浏览器,而服务器还在给客户端发送数据; ③:浏览器端按了Stop通常原因为:远程主机上对等方应用程序突然停止运行,或远程主机重新启动,或远程主机在远程方套接字上使用了“强制”关闭 (参见setsockopt(SO_LINGER))。另外,在一个或多个操作正在进行时,如果连接因“keep-alive”活动检测到一个失败而中 断,也可能导致此错误。此时,正在进行的操作以错误码WSAENETRESET失败返回,后续操作将失败返回错误码WSAECONNRESET。
但是如果频繁出现,就表示很 多客户端连接到Apache服务器的响应时间太长了,可能是网络的问题或者服务器性能问题。参考: ClientAbortException,Connection reset by peer: socket write error
WEB系统运行时,tomcat经常抛出该异常,实在郁闷,网上查到了如下原因:
ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error的原因是由于处理http连接时,正在输出内容时,用户关闭了IE,会出现一个"ClientAbortException",属于I/O处理 中出现的一个异常,应用服务器应该会捕捉。
Connection reset by peer的原因: 经常出现的Connection reset by peer: 原因可能是多方面的,不过更常见的原因是: ①:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉; ②:客户关掉了浏览器,而服务器还在给客户端发送数据; ③:浏览器端按了Stop网友提供了如下解决方法:
可以修改tomcat的catalina.jar包,就在server目录下,只要替换 org.apache.catalina.connector.ClientAbortException类即可,原来类的代码很简单,太长贴不了,我就 贴里面我唯一修改注释过的那个方法: package org.apache.catalina.connector; import java.io.IOException; public final class ClientAbortException extends IOException { public ClientAbortException(String message, Throwable throwable) { this.message = null; this.throwable = null; //注释掉这行即可 //this.message = message; this.throwable = throwable; } } 我就注释掉了“//this.message = message;”这一行,就是把任何扔进来的错误信息都忽略,就可以防止tomcat这个让人讨厌的报错动作了。
参考:
Connection reset by peer , socket write error
Causes and solutionsThis exception occurs when a client made a request, and before receiving the full response, either of the following happened:
client’s browser has been closed.
client’s connection has been disconnected. client presses the stop button. This exception is normally harmless. It does not seem possible to trap this exception with J2SE.参考:
1,一般是有些客户端已关闭,一些线程因为延迟等原因觉察不到此连接已结束,继续等到到出错 2,客户端那里不停刷或一个访问/刷新没完成前再刷,要让这个无用的线程死掉 3,这个问题一般是客户端在连接还没有完全建立的时候就取消连接,比如用户按了浏览器上面的“停止”按钮,一般来说没有什么问题。但是如果频繁出现,就表示很多客户端连接到Apache服务器的响应时间太长了,可能是网络的问题或者服务器性能问题。 4, 这个问题一般是客户端在连接还没有完全建立的时候就取消连接,比如用户按了浏览器上面的“停止”按钮,一般来说没有什么问题。但是如果频繁出现,就表示很多客户端连接到Apache服务器的响应时间太长了,可能是网络的问题或者服务器性能问题 5,可能你的网络连接存在一些问题,你的数据传输的时候,可能由于时间等待的太久,但是server段设置的连接检验时间限制一定,那么就可能出现这种情况的! 6,不过更常见的原因是: 1:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉; 2:客户关掉了浏览器,而服务器还在给客户端发送数据; 3:浏览器端按了Stop; 4:服务器给客户端响应结果给防火墙拦截了。 7,我又查了一些资料,原因如下: 非程序问题,一般是由于与客户端连接中断所致,没有太有效的办法解决。但是可以通过系统调优等手段提高系统吞吐量,减少部分因延迟而中断的连接。 一般免费的Web Server,如Tomcat对长期积累的IO错误解决不完善,会导致迟缓,甚至挡掉。所以,如果你的网站(或系统)访问量较大或至少又一段时间集中访问量大,一定要留意这个问题,因为它可能会使你的系统停滞。 建议:1、提高系统性能 2、有条件的话换用商业WebServer如weblogic