Forum Discussion
Is "Action on Service Down - Reselect" ever safe for HTTP virtual servers? E.g., stateless transactions
Well, The concept of "packet" ceases to exist at Layer-7. When you have a HTTP profile, then you're dealing with Requests and Responses, and all the details of packets are dealt with for you with the HTTP Profile. It gives you a persistent Request/Response interface as you would expect when working at Layer 7.
Therefore, I'm not quite sure where you got the idea of a race-condition. The concept doesn't apply in this context.
So, With HTTP Profile on a VIP, a Transaction is a HTTP Request.
When the system receives the first Request, it will call "LB_SELECT", whose job is to select a pool member to forward this request to. When you set Reselect Retries > 0, you are influencing how many times the system will attempt to choose a new pool member if the initial connection fails. The job of LB_SELECT is to choose a pool member, whether this pool member is chosen by extraction from Persistence information, or by applying the LB-Algorithm to the pool members is just an implementation detail (I'm abstracting here).
From an abstract point of view then, when you apply a one-connect profile, what you are essentially doing is: * Causing LB_SELECT to be called for every transaction (which for HTTP means every request) * Reuse existing connections to the selected pool member rather than create new ones.
The key thing is the fact that LB_SELECT is now called on every transaction.
I think that using this knowledge and the Reselect Retries > 0 should achieve the effect you are aiming for.
You will of course, have to test this out in a lab and confirm that it actually gives you what you desire.
- daboochmeisterMay 21, 2015
Cirrus
Thank you, aFanen01 - but you focused on "Reselect Retries", when I was asking about "Action on Service Down - Reselect". We already use "Reselect Retries" for HTTP, and no issues, because it only deals with new connections. But for *existing* connections, can "Action on Service Down - Reselect" be safely used, under certain constraints? And what are those constraints? The description of the feature makes it sound only safe for UDP, or TCP where no SNAT/PATing is occurring ... but I'm wondering if, when calling stateless HTTP services, enough of those constraints apply.
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