F5 Load Balancer Resends Request On Timeout
Let me preface this by saying I am not a systems administrator, I'm a programmer.
Recently, our systems administrators installed F5 load balancers. Since then, I've noticed that any time a request times out and ends up throwing a 500, the load balancer sends the same request to our other server. IIS sends the timeout response even though the script is actually still running. Even POST requests are duplicated if a script runs for more than 5 minutes. This seems like a potential issue to me, especially with e-commerce sites where customer billing is involved.
This is only a problem with a few of our longer running scripts (but it's a serious problem). I've been told that this is expected behavior, and we'll have to change our code to conform. So my questions are:
- Is this expected behavior?
- What is the advantage of the load balancer replicating the request after a timeout other than the user not having to refresh?
- With this architecture, if a script that either bogs down the server or hogs resources is run, it will end up running on both servers. Is that really optimal?
Have a look at this entry on passive application monitoring in Big-IP
My answers to your questions, as disappointing as they may be, are
Maybe (depends on passive monitoring config)
User doesn't see an error
- Maybe (Do I want to serve my users errors or try the request somewhere else?)
"Action on Service Down" is a configurable setting.