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?