Forum Discussion

Mark_Domansky's avatar
Mark_Domansky
Icon for Nimbostratus rankNimbostratus
Oct 07, 2020

Handling session timeouts with a strange webapp

Background

Genesys PureConnect Interaction Connect seems like a straightforward, albeit a bit strange, call center client web app. The client connects to a web server that is supposedly sessionless/stateless but proxies the requests to the backend service. The client browser knows the name of the backend server, and stores it's own session details within the javascript runspace on the browser. So a request from the client might look like "https://lbwebservice.com/api/backendserver/sessionid". All is fine while users are active. When it's time for a user to log off, if the user clicks the logoff button, the client sends 2 DELETE requests to the web service to log the user out and the user is logged out. If the user just closes the browser, the backend server recognizes the client is gone and he gets logged off automatically (this is how it should work, and does work when NOT using the F5 for LB).

 

The vendor support ONLY documents that Windows NLB, Apache, and NGINX are supported, but provides not documentation on configuration and links to the related product documentation (docs.microsoft.com, apache.com, etc). Support also acknowledges they themselves use an F5 for load balancing but won't provide any guidance to using it.

 

Problem

When using the F5 and Type=Standard, if the user does not click the logoff button and just closes the browser, it takes 24 hours for the session to timeout on the back-end server. This is not desirable and causes problems with the backend service. When connecting direct to a node, the user is logged off automatically after 5 minutes if they close the browser without clicking the logoff button.

 

We tried a single node behind the LB (as well as priority activation) and it had no impact.

 

We also tried Type=Performance Layer 4 and it seemed to resolve the logoff issue, but without being able to use SSL bridging, it can't inject the x-forwarded-for header, and we started seeing session sharing (calls were misrouted). (Which suggests the client sessionid isn't the only thing being used to manage connections.)

 

Questions

Has anyone worked with Interaction Connect and addressed this problem? How did you fix it?

 

Alternately, at a technical level, do you have any suggestions on what could be causing the problem and how to fix it?

 

And in the worst case, is there a way to duplicate Windows NLB functionality on the F5? I can't express how much NO ONE (Systems or Ops) wants to be running Windows NLB, but we've got to LB the service.

 

No RepliesBe the first to reply