java.net.SocketException: Software caused connection abort: recv failed; Causes and cures?
- by IVR Avenger
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