java.net.SocketException : Software caused connection abort: recv failed; Causes and cures? 异常

标签 java exception sockets tomcat

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

今天早上,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复仇者

最佳答案

您是否碰巧也检查了 JVM 的性能?我在网站内存不足时看到过类似的行为。

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

关于java.net.SocketException : Software caused connection abort: recv failed; Causes and cures? 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1461460/

相关文章:

java - 在条件构造函数上使用 @RequiredArgsConstructor

java - JDBC : Batch insert not inserting value to database

c# - BitmapFrame.Create 异常(WPF 框架中的错误?)

.net - 神秘的WPF异常: 'PresentationFramework.Eren Vista'

选择套接字输出接口(interface) : SO_BINDTODEVICE vs bind before connect

java - 读取日历java并再次打印

java - 将 hibernate-search 添加到现有系统的依赖项会导致 NoSuchFieldException

java - 使用重新抛出异常的异常处理程序是否有任何明显的区别

python - Cv2 :problem recieving full data from socket

python - TCP 连接中的 "backlog"是什么?