Qlik Community

QlikView App Development

Discussion Board for collaboration related to QlikView App Development.

Announcements
Leverage your QlikView investment to modernize BI – see how! Join Group
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
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
Highlighted
Creator III
Creator III

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

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
Highlighted

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

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.

Highlighted
Creator III
Creator III

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

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...

Highlighted

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

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.

Highlighted
Creator III
Creator III

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

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

And the session is reset other settings...

Highlighted

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

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.

Highlighted
Creator III
Creator III

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

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

Highlighted

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

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.

Highlighted
Creator III
Creator III

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

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?

Highlighted

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

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.