Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE

How NPrinting consumes resources when connecting to Qlik Sense

100% helpful (1/1)
cancel
Showing results for 
Search instead for 
Did you mean: 
Andrea_Bertazzo
Support
Support

How NPrinting consumes resources when connecting to Qlik Sense

Last Update:

Sep 3, 2021 10:52:35 AM

Updated By:

Andrea_Bertazzo

Created date:

Sep 3, 2021 10:52:35 AM

This article outlines how resources are consumed between NPrinting and Qlik Sense. For more technical descriptions, please, contact Qlik support.

 

Environment

  • NPrinting 2019 and higher releases.
  • Qlik Sense 2019 and higher releases.

 

Resolution

NPrinting interacts with Qlik Sense when a metadata reload or a task execution is started (a report preview or an On-Demand request is essentially the same as a task execution).

For metadata reloads, NPrinting directly opens a connection with Qlik Sense Server and the following actions are performed on the Sense side:

  • The Qlik Sense app is opened in the background.
  • Sections access is removed (NPrinting opens the app as an admin).
  • All selections, bookmarks and reductions are removed.
  • Qlik Sense sends the metadata to NPrinting. This comprehends: all objects name and type, all fields and their values, all variables.
  • NPrinting collects this information and organizes it in the database.

The resource consumption is mainly on the Qlik Sense side. In particular, opening the app requires RAM, and removing selections/bookmarks/Session Access requires calculations that consume CPU.


When a task is run, NPrinting connects to Qlik Sense Server that has to perform this:

  • Open the Sense app(s)
  • Remove the selections
  • Apply the filters to generate the reports. Notice that Cycles, Pages and Levels are essentially filters on each value of a field.
  • Export each single table or image requested by each template with the correct selection

This is quite expensive in term of resources, especially if many filters are present (or Cycles/Levels/Pages), because a filter is essentially a selection on the app and each selection requires calculations and, therefore, CPU usage.
Moreover, NPrinting is multi-treading. This means that the multiple instances of the same app can be opened in Qlik Sense at the same time. This enables NPrinting to execute the requests of filter applications and table exports in parallel. On the other side, having many applications opened at the same time represents a resource cost for Qlik Sense.
The maximum number of apps that can be opened at the same time equals the number of logical cores on the NPrinting Engine machine. You have to sum them if more engines are installed.
The situation is more complex if Session Access is used. In this case, NPrinting cannot apply all the requests on the apps in the same session. It is necessary that the app is closed and re-opened for each NPrinting user, with a high consume of RAM and CPU on the Sense side. This also loses the possibility to apply many of the NPrinting optimizations for the report generation.

On the NPrinting side, some resources are used by the Engine service to keep in memory images, tables and other values sent by Sense. NPrinting then needs to place these objects correctly on the template. Also this action is performed by the NPrinting Engine service and it is the more resource consuming on the NPrinting side. Generally, we do not expect a problematic consumption in a supported NPrinting environment, unless very heavy and complex reports are generated or many tasks are run at the same time. The main resource request is on the Qlik Sense side.

 

Contributors
Version history
Last update:
‎2021-09-03 10:52 AM
Updated by: