Use the pool members marked as down when all the members in the pool are down
Hello,
Is there a way to tell the F5 to send traffic to the pool members marked as down (by their monitor) in case all the pool members are down? I know it sounds silly, but here is why.
The (HTTP) application running on the pool members has a health-check URL which is used by the monitor. If the health-check page says "all good", traffic is sent to the pool member, otherwise the pool member is marked as down.
All the pool members share the same database. If just some part of the application (let's call it feature A) has an issue, the health-check page returns an error. If the source of the problem is in the database, all the nodes are marked as down. Even if all the other features are working.
My idea would be to not use the pool members marked as down as long as there is at least 1 "sane" pool member (from the monitor point of view). As soon as all the pool members are down, instead of refusing all the requests, I would like to send the traffic to the backend nodes anyway. If we're lucky, at least something will work...
The end-to-end monitoring will trigger the re-routing of the traffic to another location if there is a real problem anyway. But all the locations share the same database. So it will do that until there is no other location to failover to and still refuse to serve the traffic in case the problem is only on feature A.
I had the idea to use Priority Group Activation with 2x each backend node in the pool, once with the monitor, and once without any monitor. The problem is that I cannot add the same IP/port object twice in a pool...
I guess it should be possible to do that using an iRule?
Thanks for your help!