Sep 15th, 2011, 02:29 AM
Timeout / Abandon HttpInvoker Request
My application is multi-layed application, in which there are three layers
- Web Server (JSF + Flex)
- Application Server
- Database Server
Now, in order to perform any operation, web server calls application server via http remoting (httpInvoker). Now, it is working perfect in most of scenarios, and performing as it is expected. I have done some load testing activity on this application, and found that a lot of traffic is getting generated on Application Server despite very less load on web server. After detail analysis, I find out that web server invoke a request from application server, and application server connects with database server. If this process gets a bit lengthy or transaction time is bit high, then web server timed out. In this scenario, request should be terminated, but in real it is getting terminated on web server only, but is maintained in a queue on application server till end of execution of those cases in which long transactions are there. I have tried to do timeout settings as well for it, but client (web server) terminates quite gracefully but application server completes its transaction and traffic on both application server and database server keeps on high volume.
My current understanding is that, if we may be able to terminate all those requests which have been timed out or not valid from web server then this load would not hurt us more, but at this time it is very as requests timed out from web server, but application server and database server keeps on executing those queries & transactions which takes time. Appreciate any comments in this regard.
Tags for this Thread