`
01404421
  • 浏览: 228708 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

Connection reset by peer: socket write error 的一个原因分析

阅读更多

 

ClientAbortException:  java.net.SocketException: Connection reset by peer: socket write error

at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:366)

at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432)

at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:311)

at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293)

at org.apache.catalina.connector.Response.flushBuffer(Response.java:539)

at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:287)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)

at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)

at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)

at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)

at java.lang.Thread.run(Thread.java:626)

 

 

我的这个问题是在访问首页的时候出现的,关于这个问题网上有很多解决的方法,但是都局限于这几种:

 

1:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;

2:客户关掉了浏览器,而服务器还在给客户端发送数据;

3:浏览器端按了Stop;

4:服务器给客户端响应结果给防火墙拦截了。

但是我排查了很久都还是找不到原因,刚开始以为是连接池的原因,搞了好几种连接池都还是这样,无奈只能把这个问题放下,但是每天看到都是很心烦,今天终于又鼓起勇气来排查这个问题,首先是写了一个打印,发现每次访问首页,这个打印始终执行很多次,后来终于把错误来源锁定到了一段自动载入图片的代码中,终于才发现我在web.xml中配置了404跳转到首页,而首页有一张图片丢失了,所以浏览器在载入这个图片的时候,服务器又会抛出404错误,然后转向到首页,而首页又找不到这个图片,就继续抛出404,就陷入了一个死循环,这样就是为什么一段打印代码会执行很多次的原因了。当这个死循环达到一定深度,就会触发上面第一个原因:服务器的并发数超过了其承载量,然后就会自动Down掉这些进程。

希望对遇到同样问题的同学有所帮助。

心得:在遇到问题的时候,不能把思路只放在局部,而要善于用联系的眼光来分析。

 

5
1
分享到:
评论
5 楼 primer_of_java 2013-12-02  
不错,有参考价值,谢谢总结
4 楼 TX归心 2013-10-09  
不错不错老夫先撸为敬,众撸友随意
3 楼 zhengJackson 2012-12-13  
看起来楼主说的貌似有道理,但是楼主是怎么锁定“到了一段自动载入图片的代码中”,求赐教……
2 楼 雪临凝冰 2012-11-12  
看懂了,但为什么不将解决的方式一起写上呢
1 楼 fhtwins 2012-10-31  
说实话,没看懂

相关推荐

    java.net.SocketException Connection reset 解决方法

    Conexion reset by peer 异常是一个常见的 SocketException,它可能是由连接断开或退出未关闭连接引起的。解决这个问题的方法包括设置 Socket 的 timeout 时间、确保连接关闭后不再发送数据和使用连接池或其他机制来...

    Modbus TCP客户端和服务器示例

    Modbus协议基于主从架构,其中一个是主设备(通常是控制器),负责发起请求,而其他设备作为从设备响应这些请求。 在实现Modbus TCP客户端时,主要任务是构造并发送Modbus请求,然后解析返回的响应。请求通常包括...

    connection reset by peer问题总结及解决方案

    connection reset by peer问题总结及解决方案 1.服务器的并发连接数超过了其承载量,服务器会将其中一些连接关闭 如果知道实际连接服务器的并发客户端数并没有超过服务器的承载量,则有可能是中了病毒或者木马,引起...

    Socket长连接异常处理

    java.net.SocketException: Connection reset by peer: Socket write error 该异常可能发生在客户端和服务器端,原因是因为一端的 Socket 被关闭,而另一端继续发送数据。解决方法是确保在关闭连接前完成所有的数据...

    javaerror处理资料

    java.net.SocketException: Connection reset by peer: Socket write error 此异常通常出现在客户端尝试向服务器写入数据时突然断开连接的情况。这种现象的原因可能是远程服务器突然关闭了连接,或者客户端发送的...

    J2EE应用开发问题总结及最佳实践.pdf

    1. 使用 Oracle 数据库,大于 4k 的附件上传有问题,会报错 java.sql.SQLException: Connection reset by peer: socket write error。 解决办法是在插入 BLOB 字段值时,要先用 SELECT BLOBCOL FROM TABLENAME FOR ...

    Java Socket常见异常处理

    4. **java.net.SocketException: (Connection reset 或 Connect reset by peer: Socket write error)** 这两种异常都表示连接已断开。可能的原因是一端关闭了Socket,而另一端仍在尝试读写。处理这类异常需要检测到...

    python中关于网络socket使用实例,供大家参考使用

    except ConnectionResetError: print('Connection reset by peer.') ``` 六、多线程或异步IO 在处理多个并发连接时,可以使用多线程或多进程,或者利用Python的asyncio库进行异步I/O。例如,使用asyncio创建一个...

    DBCP连接池DBCP和C3P0配置

    根据提供的部分内容,“java.sql.SQLException: Already closed.”和“java.sql.SQLException: I/O exception: Connection reset by peer: socket write error”这类异常通常与数据库连接管理不当有关,如连接超时、...

    struts2+jsp实现文件上传的方法

    在文件上传或下载时,可能会遇到`SocketException: Connection reset by peer: socket write error`的异常。这个异常通常是由于网络中断或者客户端提前关闭连接引起的。在开发中,可以通过捕获异常并进行相应的处理...

Global site tag (gtag.js) - Google Analytics