2009-09-22 59 views
2

我有一个在Win2k3虚拟机上的Apache Tomcat 5.5上运行的应用程序。该应用程序提供XML以供某些电话设备使用,作为我们的IVR基础设施的一部分。反过来,应用程序接收来自少数SOAP服务的信息。java.net.SocketException:导致连接中断的软件:recv failed;原因和治疗?

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

重新启动Tomcat立即解决了问题。

破解打开本地主机的日志,我看到一吨的这些错误的,正确的,直到我重新启动Tomcat的:

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

大的谷歌搜索后,我的工作原理是,SOAP问题引起我的用户得到错误,导致他们提出更多请求,这会增加应用程序的负载。这导致它用尽了可用的套接字来处理传入的请求。

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

谢谢!
IVR复仇者

+0

[官方原因为“软件引起的连接中止:套接字写入错误”]的可能的重复(http://stackoverflow.com/questions/2126607/official-reasons-for-software-caused-connection-abort-socket-写错误) – EJP 2012-09-18 06:07:52

回答

0

您是否碰巧还检查JVM如何执行?当网站内存不足时,我看到了类似的行为。

只要可用连接的数量 - 你可以在tomcat conf/server.xml中调整它 - 但默认情况下是150(这是对于tomcat 6.0 - 对于tomcat 5.5不确定)。

+0

我不知道。如果再次发生这种情况,我将在重新启动之前检查所有的Tomcat和JVM统计信息。感谢有关连接的信息! – 2009-09-22 20:35:55

相关问题