Forum Discussion
Incorrect load balancing when disabling Oneconnect
- Jan 13, 2016
Is the app-pool configured as Default Pool in your Virtual Server settings? If you conditionally select another pool, ie. the server-report1 pool in an iRule, you will need to include a 'Default or Else' clause in the iRule to 'Re-Confirm' your Default Pool. Just having the app-pool as your Default Pool setting in Virtual Server properties will not be enough.
You may see a similar problem occuring in your environment:
- Your first request to app-pool is routed correctly - Your second request to app-pool is routed correctly - .. All requests destined to app-pool are routed correctly, until the first occurence where a request is routed to server-report1 pool - .. All the requests that should go to app-pool (default) thereafter are now incorrectly routed to server-report1 pool.
For a solution, if you're using the
conditional statement, append anif
statement to specify the app-pool as your default selection in iRule. If you're usingelse
conditional statement, append aswitch
statement.default
Give it a try, if the conditions described match your configuration. This would be a generic iRule problem, not related to OneConnect by any means.
Hi NiHo,
if you need to switch pools or persistence profiles without using a ONECONNECT profile, then you have to issue a
[LB::detach]
command on every single change.
See the links below for further information...
https://support.f5.com/kb/en-us/solutions/public/7000/900/sol7964.html
https://support.f5.com/kb/en-us/solutions/public/9000/800/sol9800.html
https://devcentral.f5.com/wiki/iRules.LB__detach.ashx
BTW: You may also want to try the (experimental) syntax below, to implement a simple request flow mechanism, with the purpose to only detach the server-side connection and re-apply the pool settings when its required.
when CLIENT_ACCEPTED {
set last_pool ""
}
when HTTP_REQUEST {
if { [string tolower [HTTP::uri]] starts_with "/somepath" } then {
if { $last_pool equals "my_pool_a" } then {
do nothing
} else {
LB::detach
pool my_pool_a
set last_pool my_pool_a
}
} else {
if { $last_pool equals "my_pool_b" } then {
do nothing
} else {
LB::detach
pool my_pool_b
set last_pool my_pool_b
}
}
}
Cheers, Kai
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