Forum Discussion
spark_86682
Nov 18, 2008Historic F5 Account
The problem is that since you are using the parameter to TCP::collect, the connection to the server is not being held up (see the TCP::collect wiki page for more on this). So by the time your pool commands are running, the server selection has already happened, and the connection to it has already been made. That's why you're getting the "address in use" error. Indeed, it's possible (though unlikely in practice) that some of those 56 bytes you're skipping have already been sent to it.
What you should do is a regular "TCP::collect 58" and then in CLIENT_DATA just extract the two bytes you care about; that will hold up server selection and connection allowing you to choose a different server based on those bytes.