May 29th, 2008, 08:05 AM
fail-fast web services
sorry for x-posting, i tried on the architecture forum first tho (http://forum.springframework.org/showthread.php?t=54666).
in short : we have an application that uses two tomcat instances; a front end, customer-facing application and a back-end serving web services. when running some load tests the guys are seeing the back-end tomcat server begin to lock-up when it's request thread pool is exhausted, yet the client application is almost idle. i've see this problems many times before on java stacks, but i'm wondering what the best way is to deal with this issue when working with SOAP.
we can increase the number of request threads a bit more and decrease the connection timeout (not that it would help when the client isn't strained), but i'm thinking about adding a servlet filter that throws an exception once a specified period of time elapses. the benefit of this approach is that a thread that doesn't meet an sla is terminated and it can prevent the request thread pool being exhausted under average load. the client application could then deal with the exception quickly and return rather than waiting for the service and potentially running out of threads itself.
How do other people deal with a situation like this? A lot of the requests to the web services are read operations to to cancel an slow-running request and letting the client request again isn't a big issue for us.