Forum Discussion
Vince_Beltz_959
Nimbostratus
Feb 18, 2010Hold Connection / No Pool
Got a proposal from one of our devs this AM, who wants to set up the following scenario on an LTM.
He proposes a group of clients, all trying almost constantly to connect with a VIP. The VIP allows only one connection to be established at a time, holding it until a client closes the connection or 30sec, whichever comes first. There's no data being sent over this connection, it's essentially being used as a token or signal flag (all the clients that can't get a connection freeze a parallel-processed internal task of some kind until they do make one). He sees this as the fastest way for the parallel process to communicate.
Seems fairly straightforward with Connection Limiting and a single box in a pool for the connections to go to. My question is whether there's any way for the LTM itself to hold that connection open for 30sec or until closed by the client, without requiring a server on the other side. I saw an old thread here about using OneConnect, but I don't think that's quite what I'm looking for. Or is it?
- The_Bhattman
Nimbostratus
Hi Vince, - Vince_Beltz_959
Nimbostratus
Thanks for the response - didn't think any kind of iRule fancy-dancing would be required just to allow a single connection at a time (or maybe the 30sec timeout is what raises that bar?). I'm just trying to find out if there's a way to do this solely on the LTM, with no server for the connection to actually go to. - The_Bhattman
Nimbostratus
Hi Vince, - Vince_Beltz_959
Nimbostratus
Fair 'nuff. But what about the no-server part? Anyone? - The_Bhattman
Nimbostratus
The vip has a setting which allows you to enter the amount of connection allowed. Default is 0 which means no limit on connection. You can set that to 1 and that is pretty much the only connection it will at a time. - hoolio
Cirrostratus
I don't think there is a practical way to queue connections on LTM whether it's with an iRule or not. See this post for details from Colin and Spark: - Vince_Beltz_959
Nimbostratus
We aren't looking to set up a queue, just a mob of clients all jostling for that one available connection. As soon as it's released, they all compete for it again. No load balance or prioritizing, just the one that gets lucky and gets a TCP connection for a maximum of 30sec. Experimenting now with simply setting up a tcp profile that has a 30sec idle timeout. - L4L7_53191
Nimbostratus
Another option is to use the table command, available in 10.1. I don't know what version you're using, but this particular use case seems to be pretty well suited for it. - hoolio
Cirrostratus
Of if either the client or server do send data, you could use the after command called from CLIENT_ACCEPTED and kill the client connection after 30 seconds. - Vince_Beltz_959
Nimbostratus
Anyone still reading this?
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