Forum Discussion
Vishnu_Palanis1
Nimbostratus
Mar 11, 2009Member reselect based on member status
Version of Big-IP is BIG-IP 9.1.2 Build 40.6
Here's the pseudo code for what I'm trying to do -
event http_request {
if pool member status is down {
[optional] close server connection on the down member
reselect the next active member
}
}
Basically, I'm trying to stop new requests to be sent to a member that is marked as down by a monitor.
I keep hitting a wall since some of the LB:: commands are not available in 9.1.2.
Is what I'm trying to do even possible in 9.1.2? Any suggestions to achieve what I'm trying to do?
Thanks in advance. The user community here is great! Keep up the good work.
6 Replies
- hoolio
Cirrostratus
Per the LB::status wiki page, you can use the LB::status command if you install 9.1.2HF4. But it would be much better to upgrade to 9.3.1HF6 as there are a lot of significant issues fixed in the latest maintenance release versus 9.1.2.
Aaron - Deb_Allen_18Historic F5 AccountNew requests should not be sent to a pool member that's marked down.
Unless your iRule is doing something besides enforcing that action, this behavior can be configured rather than coded in an iRule using the "Action on Service Down" pool setting (under Advanced Configuration). To reselect when the selected pool member goes down, set it to "Reselect". - Vishnu_Palanis1
Nimbostratus
Thanks for your replies.
"New requests should not be sent to a pool member that's marked down." - Actually, it's new *connections* that will not be
established to a pool member that's marked down.
Same with the "Action on Service Down" setting. This setting seemed to affect new connections only, when I tested this. I will test this out again.
A little more on my situation -
The client establishes a connection and keeps it open, and sends many requests over time on the connection. The Server(HTTP) has an idle timeout on all connections, and closes it after 2 minutes of inactivity. The client sends a few requests per minute, which results in the connection being kept open forever.
This is a difficult situation - the server cannot be shutdown for maintenance with open connections, since there maybe in flight requests over a connection. The server is able to force a health check failure and the pool member can be marked down. However, this only prevents new connections to be established on the server but does not prevent new requests over an existing connection.
I would like to prevent new requests to be sent to the server, so the server can expire the connection when the idle timeout kicks in.
Ideas? - Vince_Beltz_959
Nimbostratus
This is exactly what I'm currently trying to do - force connections to Reselect in order to allow system maintenance. This thread is almost a year old - help? - Michael_Yates
Nimbostratus
If this is what you are wanting to do, this option works and is still available and functional through 10.1.x.
Is there anything else that you are wanting to do with it or questions you have about it? - Vince_Beltz_959
Nimbostratus
I also have a thread on this over in Advanced Config.
Only the "Reject" setting for "Action on Service Down" seems to actually move established connections over to a new Pool member, and the RST send to both Client and Server is causing us some issues. We need the Client side to be unaffected (or at least unaware). "Reselect" stops sending new connections, but we have to wait hours for the current ones to clear.
So - is there a better iRule-based (or other) way to do this?
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* 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
Discover DevCentral Connects
