服务器打不开,控制台解释是broken pipe,求解释及解决方法。急

服务器打不开,控制台解释是broken pipe,求解释及解决方法。急,第1张

程序之所以会出现broken pipe是因为写入端错误发生,导致程序异常退出间接导致broken pipe;解决方法是将段错误的原因修改就行了,即将sp = sp->next改成p = p->next。

broken pipe最直接的意思是:写入端出现的时候,另一端却休息或退出了,因此造成没有及时取走管道中的数据,从而系统异常退出。服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。

服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。服务器具有高速的CPU运算能力、长时间的可靠运行、强大的I/O外部数据吞吐能力以及更好的扩展性

相关信息

服务器必须具有一定的“可扩展性”,这是因为企业网络不可能长久不变,特别是在当今信息时代。如果服务器没有一定的可扩展性,当用户一增多就不能胜任的话,一台价值几万,甚至几十万的服务器在短时间内就要遭到淘汰,这是任何企业都无法承受的。

为了保持可扩展性,通常需要在服务器上具备一定的可扩展空间和冗余件(如磁盘阵列架位、PCI和内存条插槽位等)。可扩展性具体体现在硬盘是否可扩充,CPU是否可升级或扩展,系统是否支持WindowsNT、Linux或UNIX等多种可选主流 *** 作系统等方面,只有这样才能保持前期投资为后期充分利用。

在Tomcat环境中,如果用户端主动放弃了请求,但是服务端尚未处理完成时,Tomcat会抛出一个"ClientAbortException"的 "IOException"。在Spring MVC框架中如何处理它显得有点棘手,这里将会简单说明如何进行处理。

在Spring MVC框架中我们一般会使用 " @ExceptionHandler "的注解来处理异常。通常情况下,异常被转发到一个集中的处理方法中,进行合适的处理后返回给前端。但是出现上图这种情况时,我们就无法再将response信息给返回回去了,因为用户端的请求已经close掉了。

我们在"@ExceptionHandler"方法里面捕捉到IOException且内容为"Broken pipe"的异常后,返回一个`null`给Spring框架,这样框架层面就不会进行任何处理,也就不引发"JasperException"了。

```

@ExceptionHandler(IOException.class)

@ResponseStatus(HttpStatus.SERVICE_UNAVAILABLE)  //(1)

public Object exceptionHandler(IOException e, HttpServletRequest request) {

if (StringUtils.containsIgnoreCase(ExceptionUtils.getRootCauseMessage(e), "Broken pipe")) {  //(2)

return null        //(1)    socket is closed, cannot return any response

} else {

return new HttpEntity<>(e.getMessage())  //(3)

}

}

```


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10866519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存