java io中断_tomcat  java.io.IOException: 断开的管道

一、说明

采用java开发,springmvc框架,部署到tomcat下,1500台机器不间断请求,经常tomcat会报如下错误:

org.apache.catalina.connector.ClientAbortException:

java.io.IOException: Connection reset by peer

at

org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.

at

org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.

at

org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.

at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.

at sun.nio.cs.StreamEncoder.flush(StreamEncoder.

Caused by: java.io.IOException: Connection reset by peer

at sun.nio.ch.FileDispatcherImpl.write0(Native Method)

at

sun.nio.ch.SocketDispatcher.write(SocketDispatcher.

at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.

at sun.nio.ch.IOUtil.write(IOUtil.

org.apache.catalina.connector.ClientAbortException:

java.io.IOException: 断开的管道

at

org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.

at

org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.

at

org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.

at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.

at sun.nio.cs.StreamEncoder.flush(StreamEncoder.

二、错误分析

错误原因:

这个异常是由于以下几个原因造成。

1、客户端再发起请求后没有等服务器端相应完,点击了stop按钮,导致服务器端接收到取消请求(频繁的刷新就会产生此问题)。

通常情况下是不会有这么无聊的用户,出现这种情况可能是由于用户提交了请求,服务器端相应缓慢,比如业务逻辑有问题等原因,导致页面过了很久也没有刷新出来,用户就有可能取消或重新发起请求。

这种错误是合理范围内的,无法避免的,不必关心它。

2、Tomcat服务器在接受用户请求的时候,有其自身的处理能力,线程、服务器等各个资源限制,超出Tomcat承载范围的请求,就会被tomcat停掉,也可能产生该错误。

3、Linux的线程机制会产生JVM出错的问题,特别是在连接高峰期间经常出现这样的问题,tomcat在linux下也出现类似情况。

三、解决方案

1、调高tomcat的相关参数

2、搭建分布式方案

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值