2

I have 3 IIS web servers in an ARR web farm. When we do rolling releases, we take one server offline as a backup server and move it into an "Unavailable State" I have noticed that with ARR, servers will not stay in this state...they come back online automatically hours or days later. Does anyone know how to remedy this situation? This is very bad as the server that is down is typically not running the correct version of our code.

I need to keep a server unavailable until i tell it otherwise.

2
  • I have the exact opposite problem... Even when my servers are healthy they go from available to unavailable automatically. And they never return to the available state.
    – JohannesH
    Oct 20, 2010 at 9:35
  • Is there seriously no official explanation to this issue? It bugs me like hell.. Apr 15, 2014 at 13:49

3 Answers 3

1

I would suggest configuring a health test to check the version to the version of the code that you want to run. When you make changes simply change the response match. You should also disallow new connections on a server you have a maintainence window on. This will drain the connections off and not allow them on regardless of the health of the server

4
  • I thought about that too, problem is, many times the stuff that changes is buried deep behind user input and validations. Jun 9, 2010 at 14:03
  • I have noticed the same problem with Drain...if I put a server in a drain state for a day or so, it will come out of it automatically. Jun 9, 2010 at 14:05
  • As far as the health check goes, it doesn't matter where the change is you could simply stick a text file in the directory to query for a version number. How are you handling version control today?
    – Jim B
    Jun 9, 2010 at 14:18
  • the drain issue is troubling...I haven't seen that. I'll try it on my farm to see if it happens over a few days- maybe it's a bug but you'd figure someone else would have reported it by now
    – Jim B
    Jun 9, 2010 at 14:19
2

I am running ARR 2.5 on a Windows 2008 R2 Datacenter SP1, and have experienced the same problem when transitioning a farm server by selecting either "Disallow New Connections" or "Make Server Unavailable Immediately". The controller will eventually revert the farm server to available. I checked the access logs on the affected server and in one case, it became available and began serving requests after 2 hours.

With regards to Jim B's solution, I have one issue with it. If you deploy correct code to the primary and don't configure the health test before the next check, then all farm servers that have been provisioned with the new running code will be marked as unhealthy, which in most cases is all those on the farm. I don't see how even a momentary lapse of farm server health is worth this workaround. If I'm missing the picture, please let me know.

I thought I'd be clever and set the farm server as unhealthy first, then set it to unavailable. The server immediately became unavailable and healthy.

Personally, the only way that I can be sure the farm server will not be made available automatically is by removing it from load balancing completely after you have reasonable assurance that the connections have drained.

Regardless, it seems to be a bug. I can't be sure a particular farm server will not handle session traffic when I try to funnel away from it (for updates and restarts, for example).

1

I figured out when (not why) this is happening - and how to fix it!

It happens when the app pool of the default web site (ARR Process) on the load balancer is terminated or recycled.

Follow microsofts recommendation and set app pool idle-timeout=0: Microsoft recommended ARR setup guide

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .