Forum Discussion
Help on persist and/or persist add
Think of it like a database table. Each of the persistence options (except cookie) stores some information about the client and chosen server in a record in that table (in memory on the BIG-IP), so that when the client returns with a new request the server can identify the client, look up the table entry, and load balance accordingly. Source and destination address persistence use the client's source or server's destination address, respectively, while universal persistence is basically an open table that you can store anything in. The first iRule above looks for an ID value in the request URI and load balances that based on a match in the uie table (universal inspection engine). But wait. When did a value ever get stored in that table? In the second iRule, the HTTP_RESPONSE is looking for an ID in the URI, but there's not going to be a URI in a response, so that persist add is not going to happen and so you're back to looking for a persistence record in the request that never exists. You can verify all of this by looking at persistence records with tmsh:
tmsh show ltm persistence persist-records
Ultimately for universal persistence to be effective, you need the server to send something that you can grab in a response, and that the client will transmit back in every request. This is why cookie persistence is usually the best choice, because it's basically automatic for any browser-based application.
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