天天看点

异常:Connection reset by peer: socket write error

一、第一反应

考虑:因为异常出现在报表的功能模块中,并且是在查询结果数量比较大的时候才出现,于是思维固化的认为是报表填充的问题。

怀疑:报表工具不可能填充1W条记录就挂掉吧?

二、google该异常的解释:

当客户端发出请求(request)后,如果还没有完全获得服务端的响应(response),客户端与服务器段的连接断开(例如断网、按了“停止”按钮、或者客户端浏览器关闭等),服务器端就会抛出此Exception。

出现Connection reset by peer的原因可能是多方面的,通常原因是: 

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

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

3、浏览器端按了Stop 

逐条被排除。

三、郁闷的过程中,继续其他任务。发现form表单提交出现了乱码,原来是ajaxForm提交引起的,再一看

var options = {
	 success:      showResponse,
	 url:       '${ctx}/report/exportReportToHtml.action', 
	 timeout:   1000 
}; 

$('#filter_form').ajaxForm(options); 
		    
$("#filter_search").click(function(){
	
});      

原因:原来是ajax提交的时候,设置了timeout:1000,悲愤!

继续阅读