Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
warfollowmy_ver
Creator III
Creator III

Why does the server count if the user has already logged out?

Found such a madness. 12 SR 8

There is a long calculation of the pivot table. I limited the calculation time to 15 seconds in the server settings, both in the configuration and in the settings in the console.

I'm doing the actions in the document. It takes 15 seconds, a message appears about the connection break, I'm out. But...

Even after this message, even after the user logs out, I see in the dispatcher that there is one thread of the processor busy and the memory is growing until all the sessions are full and all sessions of all users are reset.

This is an absolute madness that then all these settings are in time if it just does not give anything except messages.

1 Solution

Accepted Solutions
warfollowmy_ver
Creator III
Creator III
Author

I understood what was happening, the captain of the evidence simply died of horror ...

It turns out that the geniuses of the developers made this time for multithreading, that is, if I want 12 seconds and I have 12 cores, I need to put 1 second in a single-threaded calculation, which is usually in the summary table ... Apparently ... Information here QlikView + Qlik Sense Blog von Heldendaten: QlikView Easter Eggs - ObjectTimeLimitSec - sinnlose Cha... !

Friends, that's not all ... If the calculation in multithreading that time is accelerating, for example, really is equal to one second  ... It's just insanity ...

1.png

2.png

View solution in original post

9 Replies
Peter_Cammaert
Partner - Champion III
Partner - Champion III

Normally an end-user gets a "Connection broken" message because the QVS becomes unresponsive (IMHO your client generates this message, not the server).

However, keeping a single core busy for a while cannot be the reason for getting such a message. Did you check server RAM usage at the time when the server starts recalculating? RAM usage above 95% can also cause connections to fail.

warfollowmy_ver
Creator III
Creator III
Author

The reason is clear, I wrote about it at the beginning, there are no other reasons.

Check for yourself

1) C:\ProgramData\QlikTech\WebServer\config.xml  change <QvsTimeout>15</QvsTimeout>

2) Make a document with the script - load rowno() as 1, rowno() as 2 autogenerate (1000000);

3) Make a pivot 1 horizontally 2 vertically. Collapse the table or select little data.

4) The expression is 1, just = 1.

5) Open the document through the web, expand the table, or clear the samples.

6) Open Task Manager. Watch the memory and see the time.

7) After 15 seconds you will be thrown out of the document, you can exit yourself, but the program will continue to count something, the memory will grow until it overflows or the object is calculated ... The question is that this is wrong and the calculation should be interrupted otherwise it does not make sense...

Miguel_Angel_Baeyens

If you want to set a limit for the object, do so in the QMC: System > Setup > QlikView Server > Performance > Object Calculation Time Limit > set it to 15

Otherwise, you are closing the user session after 15 seconds, not the calculation time per object itself. All those timeouts are for a reason, if they are not aligned, you can see unexpected behaviors like the one you mention.

warfollowmy_ver
Creator III
Creator III
Author

Have you checked? I do, it is not, something gives only the editing of the configuration file.

And the session is reset other settings...

Miguel_Angel_Baeyens

Yes, I checked at the time of replying and while trying to replicate the issue you mention, which is indeed a session timeout specified by the QvsTimeout setting you have changed in the server. Yes, the object is still calculated even after the user session has been expired because yes, the object calculation limit has not been reached. Although in my case, memory does not overflow or otherwise produces any unusual consumption (Windows 7 and Windows 2012 R2).

That's how QlikView cache (and Qlik Sense's, for that matter) works.

Nothing wrong with that behavior. Again, the QvsTimeout (which is a property of the QlikView Web Server) is not the object calculation limit (which is a property of the QlikView Server), but the user session timeout in seconds.

If I set the object calculation limit time to 10 seconds and I create a chart that takes longer to render, I get a disconnect or the object could not be calculated in both QlikView 11.20 SR17 and QlikView 12.10 SR8. If I set the QvsTimeout to a value of 10 seconds, regardless how long the object takes to render, my session expires after such time.

Unless you forgot to specify any other details in the steps to reproduce the issue, it is behaving as expected.

If you set up everything correctly and still you see the unusual usage of RAM, contact Qlik Support using their portal.

warfollowmy_ver
Creator III
Creator III
Author

I understood what was happening, the captain of the evidence simply died of horror ...

It turns out that the geniuses of the developers made this time for multithreading, that is, if I want 12 seconds and I have 12 cores, I need to put 1 second in a single-threaded calculation, which is usually in the summary table ... Apparently ... Information here QlikView + Qlik Sense Blog von Heldendaten: QlikView Easter Eggs - ObjectTimeLimitSec - sinnlose Cha... !

Friends, that's not all ... If the calculation in multithreading that time is accelerating, for example, really is equal to one second  ... It's just insanity ...

1.png

2.png

Miguel_Angel_Baeyens

That setting only works for QlikView Desktop, not for QlikView Server, and applies to the user running the Desktop, not the whole computer. Also, not all the steps in a calculation are multithreaded, that depends on the expression and the datamodel, so I don't follow the rest of your post.


If you want to complain, do with Qlik Support so they can assess whether or not they should change anything in the product.


EDIT: In short, there is no issue whatsoever, and QlikView behaves the way it is expected to behave.

warfollowmy_ver
Creator III
Creator III
Author

The parameter that is configured in the server console only affects the applications in the web. The parameter in the desktop is configured only in the desktop.

Time for calculating the object should be the same regardless of the number of threads of execution, do not you think?

Miguel_Angel_Baeyens

I would multithread as many operations as possible to maximize the usage of CPU and therefore improve as much as possible the user experience by having shorter response times (faster UI).

So no, absolutely not, the time for calculating cannot be the same if you open the QVW in QlikView Desktop on a t2.nano Amazon instance with 1 non-dedicated vCPU (if possible at all) than with QlikView Server running on a bare metal server with 4 Intel Xeon E7-8870 v4 CPUs, I would definitely expect the latter to be faster.

However, there are operations in the QIX engine which are not multithreaded, and this is something to be very aware of when developing applications which are going to handle a high volume of data or an application which is going to be accessed concurrently by hundreds of users.

Also, there are operations running on client side, which are completely alien to the server, and this should be taken into consideration as well. True that Ajax happens mostly in the server, but there are elements, e.g.: the browser the user is using, which will make the whole performance experience faster or slower.