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

Posted by IVR Avenger on Stack Overflow See other posts from Stack Overflow or by IVR Avenger
Published on 2009-09-22T17:30:51Z Indexed on 2010/04/05 9:03 UTC
Read the original article Hit count: 436

Filed under:
|
|
|

Hi, all.

I've got an application running on Apache Tomcat 5.5 on a Win2k3 VM. The application serves up XML to be consumed by some telephony appliances as part of our IVR infrastructure. The application, in turn, receives its information from a handful of SOAP services.

This morning, the SOAP services were timing out intermittently, causing all sorts of Exceptions. Once these stopped, I noticed that our application was still performing very slowly, in that it took it a long time to render and deliver pages. This sluggishness was noticed both on the appliances that consume the Tomcat output, and from a simple test of requesting some static documents from my web browser.

Restarting Tomcat immediately resolved the issue.

Cracking open the localhost log, I see a ton of these errors, right up until I restarted Tomcat:

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

After a big of Googling, my working theory is that the SOAP issue caused my users to get errors, which caused them to make more requests, which put an increased load on the application. This caused it to run out of available sockets to handle incoming requests.

So, here's my quandary:
1. Is this a valid hypothesis, or am I just in over my head with HTTP and Tomcat?
2. If this is a valid hypothesis, is there a way to increase the size of the "socket queue", so that this doesn't happen in the future?

Thanks!
IVR Avenger

© Stack Overflow or respective owner

Related posts about java

Related posts about tomcat