Forum Discussion
Monitor Disables Node, persistent connections
If my monitor has marked a node as offline. Why would I want any connections persistent or otherwise to go to it?
It's down. Pick another node. How do I make this the default behavior?
5 Replies
- Vitaliy_Savrans
Nacreous
You can configure action on service down:
The Action on Service Down setting specifies the action that you want the BIG-IP system to take when the service on a pool member becomes unavailable. The possible settings are:
None -- The BIG-IP system takes no action. This is the default action.
Reject -- The BIG-IP system sends an RST (TCP-only) or ICMP message.
Drop -- The BIG-IP system simply cleans up the connection.
Reselect -- The BIG-IP system selects a different node.
To configure this setting, locate the Action on Service Down setting and select a value from the list (pool configuration menu).
- 192Dan_141251
Altostratus
Reselect is already set. Let me explain in more detail. The web node is relaying to an application node behind it. If the application node goes down, the web node displays an error page. I wrote a custom http monitor to check for the error message and disable the node if seen. The monitor is applied at the pool level and the action on service down is reselect. I load the homepage. Turn off the backend node. Wait for the Web node to be disabled then hard-refresh the page. At this point I would expect my request to get sent to one of the other web-nodes in the pool. Instead I see the error page. The LTM is redirecting me to a downed node. The node is still technically “up” it responds to tcp and serves http requests, but for all intents and purposes it’s dead, it is an ex webserver. Now, this behaviour may be understandable under some circumstances, but I certainly would not expect it to be the immutable default. Maybe if I could set apply the custom http monitor as the health monitor at the node level, maybe that would work. Maybe. But I can’t, because I can’t apply custom monitors as a “node specific monitor”.
- Kevin_Davies_40
Nacreous
You want reject. The client will be sent a TCP RST. This will close the connection. The new connections will be load balanced to available servers.
- 192Dan_141251
Altostratus
Ok thanks for you help, neither reject or reset were effecting the behaviour. After a webex session with tristan from F5, we realised it was the "Receive Disable String".
According to this page: http://support.f5.com/kb/en-us/solutions/public/12000/800/sol12818.html?sr=38128338
The behaviour if the Receive String is not received, but the Receive Disable String is (in our case this was a string from an error page warning the back-end node was down) then the Node is marked UP(disabled) or "draining mode" as some people call it. The solution was to simply remove the Receive Disabled String and have the node marked as Down when the Receive String was not received.
Receive String Receive Disable String State Yes No Up (Enabled) No Yes Up (Disabled) No No Down - Kevin_Davies_40
Nacreous
Ok thats something I didn't know. Thanks for coming back. Good info.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
