java.net.SocketException:软件导致连接中止:recv失败;原因和治疗方法?

时间:2009-09-22 17:30:52

标签: java exception sockets tomcat

我在Win2k3 VM上运行Apache Tomcat 5.5上的应用程序。该应用程序提供XML作为我们的IVR基础设施的一部分被某些电话设备使用。反过来,应用程序从少数SOAP服务接收其信息。

今天早上,SOAP服务间歇性地超时,导致各种异常。一旦这些停止,我注意到我们的应用程序仍然执行得很慢,因为它花了很长时间来渲染和传递页面。在使用Tomcat输出的设备上以及从我的Web浏览器请求一些静态文档的简单测试中都注意到了这种迟缓。

重启Tomcat会立即解决问题。

破解打开localhost日志,我看到了很多这些错误,直到我重新启动Tomcat:

WARNING: Exception thrown whilst processing POSTed parameters  
java.net.SocketException: Software caused connection abort: recv failed

经过大量谷歌搜索后,我的工作理论是SOAP问题导致我的用户收到错误,这导致他们发出更多请求,从而增加了应用程序的负担。这导致它用尽可用的套接字来处理传入的请求。

所以,这是我的窘境:
1.这是一个有效的假设,还是我只是在HTTP和Tomcat中? 2.如果这是一个有效的假设,是否有办法增加“套接字队列”的大小,以便将来不会发生这种情况?

谢谢!
IVR Avenger

1 个答案:

答案 0 :(得分:0)

你碰巧也检查了JVM的表现吗?当网站内存不足时我发现了类似的行为。

就可用连接数而言 - 您可以在tomcat conf / server.xml中进行调整 - 但默认情况下为150(这适用于tomcat 6.0 - 对tomcat 5.5不确定)。