Incorrect load balancing when disabling Oneconnect
Hello,
so sketch the situation; we have a $app-pool and an $app-report-pool. $app-pool serves the regular web interface, while $app-report generates reports and sends this to the user. Default pool is $app-pool and $app-report-pool is chosen by an iRule which just checks if the URI starts with "/report".
Due to some circumstances, we disabled OneConnect. During this, loading reports only works half of the time. (really a 50/50 change it loads correctly)
As far as I understand, using OneConnect only load balances once based on your TCP connection. So user connects to the vip and is load balanced to server1. He then requests a report via /report/xxx, which is load balanced to server-report1. How can this not work? Our default persistence is cookie persistence with source IP as the fallback.
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.