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.