Skip to main content
Announcements
See what Drew Clarke has to say about the Qlik Talend Cloud launch! READ THE BLOG
cancel
Showing results for 
Search instead for 
Did you mean: 
iamsalman
Contributor II
Contributor II

Websockets connection drops in Azure Application Gateway at http timeout

We have deployed qlik Sense with SAML authentication in Azure. Authentication is happening as explained in the following guide:

https://docs.microsoft.com/en-us/azure/active-directory/saas-apps/qliksense-enterprise-tutorial

We are accessing qlik Sense via Azure Application Gateway. The problem we are facing is the following:

- QMC endpoint works as expected after redirect

- Hub end point gets "Connection Interrupted" pop-up after the timeout interval configured in our Azure app GW (30 seconds)

I have tried to increase this timeout interval upto 60 and 120 seconds. Whatever time I set, I receive timeout error after that period. The error is shown in the following screenshot:

qlik-connection-interrupted.PNG

I have done investigations into Azure GW logs and in the Access Logs I notice that the wss request with endpoint:

wss://<Our domain with hub endpoint>/qrsData?reloadUri=<Our domain with hub endpoint>

is returning status code 101 and "time_taken" is always equal to whatever timeout interval is set in Azure GW settings. Based on this observation, I believe Azure GW doesn't accept 101 status code as success code. There is a very similar issue reported here:

https://github.com/Azure/application-gateway-kubernetes-ingress/issues/491

For the time being, we can live with increasing the timeout interval in GW configurations but that is not the proper solution. Any help/support in this regard will be highly appreciated. Thanks!

Labels (4)
1 Solution

Accepted Solutions
Bastien_Laugiero

Hello,

Could you try to apply the following article https://community.qlik.com/t5/Knowledge-Base/Enabling-TCP-Keep-Alive-Functionality-In-Qlik-Sense/ta-...

You will need to set it to a value lower than 30 seconds. 

Hope this helps!

Bastien Laugiero
If a post helps to resolve your issue, please mark the appropriate replies as CORRECT.

View solution in original post

6 Replies
Bastien_Laugiero

Hello,

Could you try to apply the following article https://community.qlik.com/t5/Knowledge-Base/Enabling-TCP-Keep-Alive-Functionality-In-Qlik-Sense/ta-...

You will need to set it to a value lower than 30 seconds. 

Hope this helps!

Bastien Laugiero
If a post helps to resolve your issue, please mark the appropriate replies as CORRECT.
iamsalman
Contributor II
Contributor II
Author

Thanks for your quick response. This infact helped solve the problem but it seems not very reliable. The documentation says "value less than 30 is not recommended". Another thing is the value must be less than half of the timeout interval I set in Azure App GW. That means for a timeout of 60 sec in GW, WebSocketPingInterval has to be less than 30sec, otherwise I get the same connection interrupted error.

Bastien_Laugiero

Hello, 

Thanks for the feedback. I believe the reason why it is not recommended is because it increased the network traffic. 

Setting this value at 20 for example shouldn't have any performance impact on your infrastructure. This part of the article should perhaps be updated actually.

The other alternative of course is to increase the timeout on Azure GW side. 

Hope this helps!

Bastien Laugiero
If a post helps to resolve your issue, please mark the appropriate replies as CORRECT.
iamsalman
Contributor II
Contributor II
Author

Another question for this "WebSocketPingInterval" value. is there a qlik CLI based cmd that can be used to update this setting? I would like to automate this step via script

Bastien_Laugiero

Hello, 

Since it is a setting to implement in a configuration file, Qlik CLI or any API call won't help in this case.

However, you could create a PowerShell script to right this line in the Proxy configuration file and trigger a restart of the Proxy service.

Hope this helps! 

Bastien Laugiero
If a post helps to resolve your issue, please mark the appropriate replies as CORRECT.
arockiyaselvana
Partner - Creator
Partner - Creator

Hi @Bastien_Laugiero , I am also facing with similar issue in my client setup. When we try to access hub page outside corp network using Azure app gateway, we are getting the same error message.

In our Prod env, WebSocketPingInterval is not set so far. With this setup, it is working good inside our network.

If we change this, will it impact existing customer experience?

 

Also in the referred article it is recommended to set the value between 60-300 preferably the largest. but you are suggesting to set it to 20. can you please clarify more here?

Excerpt from the Article: Recommended is 60-300 second range, shorter interval generates more load on Proxy CPU and network. It should be set as high as possible, meaning it's best to identify at which interval an intermediate proxy cuts the connection when it perceives it as idle, and then set the ping interval to a slightly smaller value.  Link: https://community.qlik.com/t5/Official-Support-Articles/Enabling-TCP-Keep-Alive-Functionality-In-Qli...