Services
The Qlik Sense services run as Microsoft Windows services, which you can deploy on a single server or on separate server nodes that have dedicated roles in a Qlik Sense site. For example, you could deploy a scheduler node that only runs the scheduler service and manages the reloads of apps.
The Qlik Sense services are as follows.
Qlik Sense Repository Service (QRS)
Required by all Qlik Sense services to run and serve apps, and connects to the repository database. The Qlik Sense Repository Service manages persistence, licensing, security, and service configuration data. The QRS is needed by all other Qlik Sense services to run and serve apps. In a multi-node site, one instance of the Qlik Sense Repository Service (QRS) runs on each node, connecting it to the shared repository database.
In addition, the QRS stores the app structures and the paths to the binary files. The app data is stored as .qvf files in the file share.
Paths
The following table lists the paths used by the Qlik Sense Repository Service (QRS).
Executable | %ProgramFiles%\Qlik\Sense\Repository\Repository.exe |
---|---|
Data | %ProgramData%\Qlik\Sense\Repository |
Logs |
%ProgramData%\Qlik\Sense\Log\Repository See: Logging |
Repository database |
In a default Qlik Sense installation, the repository database is an instance of PostgreSQL installed locally that runs its own database cluster specifically for the repository. All files related to the repository database in a default Qlik Sense installation are stored in the following folder: %ProgramData%\Qlik\Sense\Repository\PostgreSQL |
Bootstrap mode
You can use the following parameters to start the Qlik Sense Repository Service in bootstrap mode when you need to deploy Qlik Sense with a service account that does not have administrator privileges.
See: Changing the user account to run Qlik Sense services
- -bootstrap
Use this parameter to start Qlik Sense Repository Service in bootstrap mode.
- -bootstrap=install
Use this parameter to start Qlik Sense Repository Service in bootstrap mode when installing.
- -bootstrap=uninstall
Use this parameter when uninstalling Qlik Sense.
- -iscentral
Use this flag in addition to the bootstrap flag when installing or configuring a central node.
Do the following:
- Stop all Qlik Sense services except Qlik Sense Repository Database.
- Run repository.exe -bootstrap from an elevated command prompt. The Qlik Sense Service Dispatcher must be running before the Repository.exe -bootstrap is executed.
- Start all Qlik Sense services. You must start the Qlik Sense Service Dispatcher (QSD) before starting the Qlik Sense Repository Service (QRS).
Metrics
The following metrics related to the Qlik Sense Repository Service are available in the Performance Monitor in Microsoft Windows. For instructions on how to add metrics to the monitor, see Selecting the metrics to display.
Qlik Sense Repository Service - Common metrics
The Qlik Sense Repository Service HTTP connection thread pool manages incoming HTTP requests.
-
HttpConnection_ThreadPool_ActiveThreadCount: The number of active threads in the HTTP connection thread pool. Help assess the current workload and responsiveness of the service.
-
HttpConnection_ThreadPool_CompleterRequestsPerSecond: The rate at which HTTP requests are being completed (processed and responded to). Measures the request processing efficiency and throughput.
-
HttpConnection_ThreadPool_RequestQueueSize: The current size of the request queue in the HTTP connection thread pool. Requests are queued when all available threads are busy handling other requests. Helps assess the workload and responsiveness of the service.
-
HttpConnection_ThreadPool_TotalThreadCount: The total number of threads (both active and idle) in the HTTP connection thread pool. Reflects the overall capacity and utilization of the thread pool for handling incoming HTTP requests.
Qlik Sense Repository Service - REST API metrics
-
# of http DELETE calls: The number of HTTP DELETE requests made to the server. DELETE requests are used to remove a resource on the server.
-
# of http GET calls: The number of HTTP GET requests made to the server. GET requests are used to retrieve data or resources from the server.
-
# of http POST calls: The number of HTTP POST requests made to the server. POST requests are used to submit data to be processed by the server, often resulting in the creation of a new resource.
-
# of http PUT calls: The number of HTTP PUT requests made to the server. PUT requests are used to update or replace an existing resource on the server.
-
# of httpstatus 200 (OK): The number of HTTP responses with status code 200. This code indicates a successful request, where the server successfully processed and responded to the client's request.
-
# of httpstatus 201 (Created): The number of HTTP responses with status code 201. This code indicates that a new resource was successfully created on the server as a result of the request.
-
# of httpstatus 400 (BadRequest): The number of HTTP responses with status code 400. This code indicates that the server could not process the request due to malformed syntax or invalid parameters in the client's request.
-
# of httpstatus 401 (Unauthorized): The number of HTTP responses with status code 401. This code indicates that the request requires authentication, and the client either failed to provide valid credentials or lacks authorization for the requested resource.
-
# of httpstatus 403 (Forbidden): The number of HTTP responses with status code 403. This code indicates that the server understood the request but refuses to authorize it because the client does not have permission to access the requested resource.
-
# of httpstatus 406 (NotAcceptable): The number of HTTP responses with status code 406. This code indicates that the server cannot respond with the requested content type specified in the client's Accept header.
-
# of httpstatus 409 (Conflict): The number of HTTP responses with status code 409. This code indicates that the request could not be completed due to a conflict with the current state of the resource.
-
# of httpstatus 415 (UnsupportedMediaType): The number of HTTP responses with status code 415. This code indicates that the server refuses to accept the request because the payload format is unsupported (e.g., unsupported media type).
-
# of httpstatus 500 (InternalServerError): The number of HTTP responses with status code 500. This code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
-
# of httpstatus 503 (ServiceUnavailable): The number of HTTP responses with status code 503. This code indicates that the server is temporarily unable to handle the request due to maintenance or overload, and the client should retry later.
Qlik Sense Repository Database (QRD)
In a default Qlik Sense installation, the Qlik Sense Repository Service (QRS) uses the Qlik Sense Repository Database (QRD) service to read and write data in the repository database. By default a PostgreSQL database is installed locally with your Qlik Sense installation otherwise you can choose to install PostgreSQL on a separate dedicated server.
Paths
The following table lists the paths used by the Qlik Sense Repository Database (QRD) service.
Executable |
In a default Qlik Sense installation, the repository database is an instance of PostgreSQL that creates its own database cluster. The following folder contains the contains the PostgreSQL executable file for the QRD: %ProgramFiles%\Qlik\Sense\Repository\PostgreSQL\<database version>\bin |
---|---|
Data | %ProgramData%\Qlik\Sense\Repository\PostgreSQL |
Logs | There are no logs for the QRD service. Instead see the PostgreSQL log files. |
Qlik Sense Proxy Service (QPS)
The Qlik Sense Proxy Service (QPS manages site authentication, session handling, and load balancing.
On the central node in a multi-node site, you should have a dedicated Qlik Sense Proxy Service (QPS) for the Qlik Management Console (QMC) and not for the hub.
Paths
The following table lists the paths used by the Qlik Sense Proxy Service (QPS).
Executable | %ProgramFiles%\Qlik\Sense\Proxy\Proxy.exe |
---|---|
Data | %ProgramData%\Qlik\Sense\Proxy |
Logs | %ProgramData%\Qlik\Sense\Log\Proxy
See: Logging |
Bootstrap mode
You can use the following parameters to start the Qlik Sense Proxy Service in bootstrap mode when you need to deploy Qlik Sense with a service account that does not have administrator privileges.
See: Changing the user account to run Qlik Sense services
- -bootstrap
Use this parameter to start Qlik Sense Proxy Service in bootstrap mode.
- -bootstrap=install
Use this parameter to start Qlik Sense Proxy Service in bootstrap mode when installing.
- -bootstrap=uninstall
Use this parameter when uninstalling Qlik Sense.
Do the following:
- Stop Qlik Sense services.
- Run proxy.exe -bootstrap from an elevated command prompt.
- Start Qlik Sense services.
Metrics
The following metrics related to the Qlik Sense Proxy Service are available in the Performance Monitor in Microsoft Windows. For instructions on how to add metrics to the monitor, see Selecting the metrics to display.
Qlik Sense Proxy Service metrics
- # of ActiveClientWebsockets: The number of active WebSockets between the client and the QPS.
- # of ActiveConnections: The number of active connections from the client. A connection is a stream (or a socket) between a Qlik Sense client and the QPS. This stream is often connected to another stream, which runs from the QPS to the Qlik Sense Repository Service (QRS) or the Qlik Sense Engine Service (QES). The two streams allow the client to communicate with the QRS or the QES.
- # of ActiveEngineWebsockets: The number of active WebSockets between the QPS and the target Qlik Sense service.
- # of ActiveSessions: The number of active sessions in the QPS.
A Qlik Sense user gets a proxy session when the user has been authenticated. The session is terminated after a certain period of inactivity. - # of ActiveStreams: The number of active data streams (or sockets), either from the browser to the QPS or from the QPS to the QRS or the QES.
- # of HandleCount: The number of handles currently open by the QPS. Handles represent resources (like files, devices, or objects) used or managed by the service.
- # of LoadBalancingDecisions: The number of users who currently have at least one engine session.
- # of PrintingLoadBalancingDecisions: The number of users who have been load balanced to the Qlik Sense Printing Service (QPR).
- # of Tickets: The number of issued login tickets that have not yet been consumed.
- # of WorkerThreads: The current number of worker threads used by the QPS. Worker threads handle tasks and requests within the proxy service, such as managing user sessions or processing incoming requests.
Qlik Sense Scheduler Service (QSS)
The Qlik Sense Scheduler Service (QSS) manages the scheduled reloads of apps, as well as other types of reload triggering based on task events. Depending on the type of deployment, the Qlik Sense Scheduler Service runs as manager, worker, or both on a node.
Manager
There is only one manager Qlik Sense Scheduler Service within a site and it is always located on the central node, where the manager Qlik Sense Repository Service runs. The central node must have the Qlik Sense Scheduler Service installed even if more QSS nodes are added because the QSS on the central node coordinates all QSS activities within the site.
The manager QSS handles all task administration. For example, which tasks to execute and when to execute a specific task. When the time comes to execute a task, the manager QSS sends the task ID to a worker QSS within the site. The load balancing operation performed by the manager QSS determines which worker QSS to distribute the task ID to.
When a worker QSS completes a task, it returns the task state (successful or fail) to the manager QSS. The manager QSS uses the task state to perform task chaining. It uses the task state to determine if other events are affected by the state of the completed task and need to be executed. You configure task chaining in the Qlik Management Console (QMC).
If the worker QSS fails to perform the task, the manager QSS repeatedly requests the same or another worker QSS to perform the task until it has been completed or until the maximum number of attempts has been reached.
Worker
If a Qlik Sense Scheduler Service (QSS) runs on a rim node, the QSS is considered to be a worker QSS. When receiving a task ID from the manager QSS, the worker QSS reads the task from the local repository database and executes the task. When a worker QSS completes a task, it returns the task state (successful or fail) to the manager QSS.
Tasks
Tasks are used to perform a wide variety of operations and can be chained together in any arbitrary pattern. The tasks are handled by the Qlik Sense Scheduler Service (QSS) and managed in the Qlik Management Console (QMC).
Reload
The reload task is used to fully reload the data in an app from the source. Any old data is discarded.
Paths
The following table lists the paths used by the Qlik Sense Scheduler Service (QSS).
Executable | %ProgramFiles%\Qlik\Sense\Scheduler\Scheduler.exe |
---|---|
Data | - |
Logs |
%ProgramData%\Qlik\Sense\Log\Scheduler See: Logging |
Bootstrap mode
You can use the following parameters to start the Qlik Sense Scheduler Service in bootstrap mode when you need to deploy Qlik Sense with a service account that does not have administrator privileges.
See: Changing the user account to run Qlik Sense services
- -bootstrap
Use this parameter to start Qlik Sense Scheduler Service in bootstrap mode.
- -bootstrap=install
Use this parameter to start Qlik Sense Scheduler Service in bootstrap mode when installing.
- -bootstrap=uninstall
Use this parameter when uninstalling Qlik Sense.
Do the following:
- Stop Qlik Sense services.
- Run scheduler.exe -bootstrap from an elevated command prompt.
- Start Qlik Sense services.
Metrics
The following metrics related to the Qlik Sense Scheduler Service (QSS) are available in the Performance Monitor in Microsoft Windows. For instructions on how to add metrics to the monitor, see Selecting the metrics to display.
Qlik Sense Scheduler Service metrics
- # of connected workers: The number of currently connected QSS worker instances.
- # of running engines: The number of Qlik Sense Engine Service (QES) instances running on a worker. This metric is only available on the node where the QES instances run.
- # of running processes: The total number of processes currently active within the QSS.
- # of running tasks as understood by the manager: The number of tasks currently running, managed by the QSS manager.
- # of running tasks on the worker: The number of tasks currently running on the worker node.
- # of task messages dispatched by the worker: The number of messages related to tasks sent out by the worker.
- # of task messages received by the manager: The number of messages related to tasks received by the QSS manager.
- # of task retries: The number of times tasks have been retried after initial failure.
- # of tasks that has completed successfully when executed by the worker: The number of tasks successfully completed by worker nodes.
- # of tasks that has failed when executed by the worker: The number of tasks that failed when executed by worker nodes.
- # of tasks the manager has acknowledged as completed: The number of tasks acknowledged as completed by the QSS manager.
- # of tasks the manager has acknowledged as failed: The number of tasks acknowledged as failed by the QSS manager.
- # of times the settings has been updated: The number of times settings related to QSS have been modified.
- # of tasks we've attempted to start: The number of attempted task starts.
- # of tasks we've attempted to stop: The number of attempted task stops.
Qlik Sense Engine Service (QES)
The Qlik Sense Engine Service (QES) handles all application calculations and logic. In a multi-node site, we recommend that you have a dedicated Qlik Sense Engine Service (QES) on the central node that you use specifically for the Qlik Management Console (QMC) and not for the hub.
Paths
The following table lists the paths used by the Qlik Sense Engine Service (QES).
Executable | %ProgramFiles%\Qlik\Sense\Engine\Engine.exe |
---|---|
Data | %ProgramData%\Qlik\Sense\Engine |
Logs | %ProgramData%\Qlik\Sense\Log\Engine
See: Logging |
Configuration |
%ProgramData%\Qlik\Sense\Engine\Settings.ini This file contains the QES settings. The file is created when the service first runs. |
Qlik Sense Printing Service (QPR)
This service manages export in Qlik Sense. In a multi-node site, one instance of the Qlik Sense Printing Service (QPR) runs on each node. Export requests from clients are directed to the printing services in the multi-node site using round robin load balancing. If the first export request is load balanced to the QPR on node 1, the second export request is load balanced to the QPR on node 2, and so on.
Paths
The following table lists the paths used by the Qlik Sense Printing Service (QPR).
Executable | %ProgramFiles%\Qlik\Sense\Printing\Printing.exe |
---|---|
Data | %ProgramData%\Qlik\Sense\Printing |
Logs |
%ProgramData%\Qlik\Sense\Log\Printing See: Logging |
Qlik Sense Service Dispatcher (QSD)
This is a service controller used to launch and manage the following Qlik Sense services:
- Broker Service: acts as an interface to and an intermediary between services started by the Qlik Sense Service Dispatcher(QSD). The service is launched and managed by the Qlik Sense Service Dispatcher (QSD) when required.
- Data Profiling Service: is used to access and modify the app load data model. It communicates directly with the Qlik Sense Engine Service (QES) on the node. The service is launched and managed by the Qlik Sense Service Dispatcher (QSD) when required.
- Hub Service: controls which content a user is allowed to see based on their access rights as defined in the QMC. The service is launched and managed by the Qlik Sense Service Dispatcher(QSD) when required.
- Web Extension Service: is used to control web extensions such as visualizations, mashups, and widgets. The service is launched and managed by the Qlik Sense Service Dispatcher (QSD) when required.
- Capability Service: is used to handle Qlik Sense .NET SDK system feature configuration.
- Converter Service: is used by the QlikView converter tool.
- On-demand App Service: generates on-demand apps that load subsets of data from very large data sets.
- Hybrid Deployment Service (HDS): manages target deployments and credentials related to hybrid connectivity between environments, specifically the distribution of apps from the QSE.
- Hybrid Setup Console (HSC): serves the HSC user interface which is used to configure target deployments and app distribution.
- App Distribution Service (ADS): distributes apps and associated metadata to defined distribution targets, based on policy based app distribution rules.
- Precedents Service: captures user-learned feedback from Insight Advisor.
Paths
The following table lists the paths used by the Qlik Sense Service Dispatcher (QSD) and the services that are launched and managed by the QSD.
Executables |
|
---|---|
Logs |
See: Logging |
Qlik License Service
The Qlik License Service is included in Qlik Sense Enterprise February 2019 and later releases and is used when Qlik Sense is activated using a signed key license. The Qlik License Service stores the information about the license, and communicates with a License Back-end Service, hosted by Qlik, for product activations and entitlement management. Port 443 is used for accessing the License Back-end Service and retrieving license information.
In a Qlik Sense Enterprise on Windows multi-node deployment, the Qlik License Service is installed on every node. You can manage the status of the Qlik License Service by starting and stopping the Qlik Sense Service Dispatcher, listed in the list of services running in the Windows machine.
Deployment examples of nodes running Qlik Sense services
You can deploy Qlik Sense services to run individually or combine them on dedicated server nodes.
- Complete: A single-node deployment that includes all Qlik Sense services.
- Consumer node: A node that delivers Qlik Sense apps to end users. It includes the Qlik Sense Engine Service service, the Qlik Sense Proxy Service, and the Qlik Repository service.
- Proxy node: A node that manages Qlik Sense authentication, session handling, and load balancing. It includes the QRS, and the QPS services.
- Engine node: A node that provides the analytical power of Qlik Sense to the client. It includes the QRS, and the QES services.
- Proxy and engine node: A combined node that includes the QRS, QPS, and QES service.
- Scheduler: A node that manages scheduled reloads of Qlik Sense apps and other types of reload triggering. It includes the QRS, QSS, and QES services. In order to perform reloads the QSS requires the QES to be running on the same node.
Service dependencies
This section describes the dependencies related to the Qlik Sense services (for example, dependencies on the operating system and other software).
Repository database
The Qlik Sense Repository Service (QRS) connects to the repository database to store and retrieve data necessary for the Qlik Sense services on the node on which the QRS is running. In a default Qlik Sense installation, the Qlik Sense Repository Service (QRS) uses the Qlik Sense Repository Database (QRD) service to read and write data in the repository database. A PostgreSQL database is used by default.
File share
The file share stores the binary files for the Qlik Sense apps.
Directory service
The QRS and Qlik Sense Proxy Service (QPS) communicate with a configured directory service (for example, Microsoft Active Directory) using, for example, LDAP or ODBC.
Start and restart of services
When a node starts up, the Qlik Sense services are started automatically.
Start-up behavior
The Qlik Sense Repository Database (QRD) and Qlik Sense Repository Service (QRS) are started first.
When any other Qlik Sense service starts, it contacts its local QRS to get configuration parameters. If the service has not been configured to run, it periodically checks back with the local QRS.
Manual start
If you need to start services manually, start them in the following order:
- Qlik Sense Repository Database (QRD)
- Qlik Sense Service Dispatcher (QSD)
- Qlik Sense Repository Service (QRS)
- Qlik Sense Proxy Service (QPS), Qlik Sense Engine Service (QES), Qlik Sense Scheduler Service (QSS), and Qlik Sense Printing Service (QPR) in no specific order
The start-up order is important. During start-up the QRS must be able to contact the Qlik License Service, which is managed by the QSD. The other services are dependent on the QRS. The QSD must therefore be running when the QRS is started.