Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Search our knowledge base, curated by global Support, for answers ranging from account questions to troubleshooting error messages.
Qlik offers a wide range of channels to assist you in troubleshooting, answering frequently asked questions, and getting in touch with our technical experts. In this article, we guide you through all available avenues to secure your best possible experience.
For details on our terms and conditions, review the Qlik Support Policy.
Index:
We're happy to help! Here's a breakdown of resources for each type of need.
Support | Professional Services (*) | |
Reactively fixes technical issues as well as answers narrowly defined specific questions. Handles administrative issues to keep the product up-to-date and functioning. | Proactively accelerates projects, reduces risk, and achieves optimal configurations. Delivers expert help for training, planning, implementation, and performance improvement. | |
|
|
(*) reach out to your Account Manager or Customer Success Manager
Your first line of support: https://community.qlik.com/
Looking for content? Type your question into our global search bar:
Leverage the enhanced and continuously updated Knowledge Base to find solutions to your questions and best practice guides. Bookmark this page for quick access!
Subscribe to maximize your Qlik experience!
The Support Updates Blog
The Support Updates blog delivers important and useful Qlik Support information about end-of-product support, new service releases, and general support topics. (click)
The Qlik Design Blog
The Design blog is all about product and Qlik solutions, such as scripting, data modelling, visual design, extensions, best practices, and more! (click)
The Product Innovation Blog
By reading the Product Innovation blog, you will learn about what's new across all of the products in our growing Qlik product portfolio. (click)
Q&A with Qlik
Live sessions with Qlik Experts in which we focus on your questions.
Techspert Talks
Techspert Talks is a free webinar to facilitate knowledge sharing held on a monthly basis.
Technical Adoption Workshops
Our in depth, hands-on workshops allow new Qlik Cloud Admins to build alongside Qlik Experts.
Qlik Fix
Qlik Fix is a series of short video with helpful solutions for Qlik customers and partners.
Suggest an idea, and influence the next generation of Qlik features!
Search & Submit Ideas
Ideation Guidelines
Get the full value of the community.
Register a Qlik ID:
Incidents are supported through our Chat, by clicking Chat Now on any Support Page across Qlik Community.
To raise a new issue, all you need to do is chat with us. With this, we can:
Log in to manage and track your active cases in the Case Portal. (click)
Please note: to create a new case, it is easiest to do so via our chat (see above). Our chat will log your case through a series of guided intake questions.
When creating a case, you will be prompted to enter problem type and issue level. Definitions shared below:
Select Account Related for issues with your account, licenses, downloads, or payment.
Select Product Related for technical issues with Qlik products and platforms.
If your issue is account related, you will be asked to select a Priority level:
Select Medium/Low if the system is accessible, but there are some functional limitations that are not critical in the daily operation.
Select High if there are significant impacts on normal work or performance.
Select Urgent if there are major impacts on business-critical work or performance.
If your issue is product related, you will be asked to select a Severity level:
Severity 1: Qlik production software is down or not available, but not because of scheduled maintenance and/or upgrades.
Severity 2: Major functionality is not working in accordance with the technical specifications in documentation or significant performance degradation is experienced so that critical business operations cannot be performed.
Severity 3: Any error that is not Severity 1 Error or Severity 2 Issue. For more information, visit our Qlik Support Policy.
If you require a support case escalation, you have two options:
When other Support Channels are down for maintenance, please contact us via phone for high severity production-down concerns.
A collection of useful links.
Qlik Cloud Status Page
Keep up to date with Qlik Cloud's status.
Support Policy
Review our Service Level Agreements and License Agreements.
Live Chat and Case Portal
Your one stop to contact us.
The information and script in this article are provided as is. For further customization and assistance, engage with our active QlikView or Qlik Sense app-building boards.
If you have a group of fields that are related, or if fields carry information that can be broken up into smaller parts that are relevant when creating dimensions or measures, you can create field definitions that can be used to generate derived fields. One example is a date field, from which you can derive several attributes, such as year, month, week number, or day name. All these attributes can be calculated in a dimension expression using Qlik Sense date functions, but an alternative is to create a calendar definition that is common for all fields of date type. Field definitions are stored in the data load script.
Note in case that you need to change the format / to customize the date you need to do it from the script, and most probably drill down to all levels, depending of course the object and what you want to accomplish.
Here is such an example of an autocalendar that can be used in any case:
[autoCalendar]:
DECLARE FIELD DEFINITION Tagged ('$date')
FIELDS
Dual(Year($1), YearStart($1)) AS [Year] Tagged ('$axis', '$year'),
Dual('Q'&Num(Ceil(Num(Month($1))/3)),Num(Ceil(NUM(Month($1))/3),00)) AS [Quarter] Tagged ('$quarter', '$cyclic'),
Dual(Year($1)&'-Q'&Num(Ceil(Num(Month($1))/3)),QuarterStart($1)) AS [YearQuarter] Tagged ('$yearquarter', '$qualified'),
Dual('Q'&Num(Ceil(Num(Month($1))/3)),QuarterStart($1)) AS [_YearQuarter] Tagged ('$yearquarter', '$hidden', '$simplified'),
Month($1) AS [Month] Tagged ('$month', '$cyclic'),
Dual(Year($1)&'-'&Month($1), monthstart($1)) AS [YearMonth] Tagged ('$axis', '$yearmonth', '$qualified'),
Dual(Month($1), monthstart($1)) AS [_YearMonth] Tagged ('$axis', '$yearmonth', '$simplified', '$hidden'),
Dual('W'&Num(Week($1),00), Num(Week($1),00)) AS [Week] Tagged ('$weeknumber', '$cyclic'),
Date(Floor($1)) AS [Date] Tagged ('$axis', '$date', '$qualified'),
Date(Floor($1), 'D') AS [_Date] Tagged ('$axis', '$date', '$hidden', '$simplified'),
If (DayNumberOfYear($1) <= DayNumberOfYear(Today()), 1, 0) AS [InYTD] ,
Year(Today())-Year($1) AS [YearsAgo] ,
If (DayNumberOfQuarter($1) <= DayNumberOfQuarter(Today()),1,0) AS [InQTD] ,
4*Year(Today())+Ceil(Month(Today())/3)-4*Year($1)-Ceil(Month($1)/3) AS [QuartersAgo] ,
Ceil(Month(Today())/3)-Ceil(Month($1)/3) AS [QuarterRelNo] ,
If(Day($1)<=Day(Today()),1,0) AS [InMTD] ,
12*Year(Today())+Month(Today())-12*Year($1)-Month($1) AS [MonthsAgo] ,
Month(Today())-Month($1) AS [MonthRelNo] ,
If(WeekDay($1)<=WeekDay(Today()),1,0) AS [InWTD] ,
(WeekStart(Today())-WeekStart($1))/7 AS [WeeksAgo] ,
Week(Today())-Week($1) AS [WeekRelNo] ;
DERIVE FIELDS FROM FIELDS [Date] USING [autoCalendar] ;
Reloads fail with error:
A reload fails with:
Requested endpoint could not be provisioned due to failure to acquire a load slot: Your version of Direct Access gateway is no longer supported. Go to 'Data gateways' in the Management Console to download the latest version (DirectAccess-0001)
Upgrade Qlik Data Gateway - Direct Access to a supported version.
If you are already on a supported version of Qlik Data Gateway, rerun the reload. Likely, the services were still initializing when the issue occurred.
This message can occur when the Qlik Data Gateway version is not supported
Or it could also be caused if the services are starting when the request is sent, causing the version being misreported. This is usually an isolated issue with very few reload failures.
Click here for Video Transcript
The Qlik Sense Virtual Proxy has two different authentication options by default: Forms and Windows Authentication. The Windows Authentication Pattern setting determines which one is used.
The setting is accessed through the Qlik Sense Management Console > Virtual Proxies > [Virtual Proxy] > Authentication
See Figure 1:
When a client connects to Qlik Sense, the browser sends a User-Agent string to as part of the standard connection process.
The Qlik Sense Proxy service reads this string and checks for the presence of the value found in Windows Authentication Pattern. If the string is present windows authentication is used and if the browser supports NTLM the user may be automatically logged in. If the automatic login fails they will get a pop-up asking for username and password.
If the Windows Authentication Pattern value is not found then we fall back to forms authentication where instead we use a form and always require a username and password for login.
The default value for Windows Authentication Pattern is "Windows", which is present in all windows browser user-agent strings. If you change it to say Chrome or Firefox instead only those browsers will be offered Windows authentication. If you want to use Windows Authentication on all browsers try setting it to another string found in all user-agents (besides Windows), for example, "Mozilla".
The Qlikview server has been set up with Kerberos authentication. When navigating to the QlikView Management Console the following errors are shown:
Login Failed
This web page cannot be displayed
Environment
Kerberos authentication is not supported in the QlikView Management Console.
For information regarding the AccessPoint, see Kerberos support using QlikView Webserver
When ASM is used for an Oracle source endpoint, you should not be using a direct IP address to connect to the ASM.
Attempting to add multiple IP address connection strings into the ASM connection string field may lead to a connection failure with the following error:
SYS,GENERAL_EXCEPTION,Incorrect connection string for the thread 10
The TNS connection string of the ASM node cluster should be used for the ASM connection.
Correct Example:
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=asmhostname)(PORT=1531))(CONNECT_DATA=(SERVICE_NAME=+ASM)))
Incorrect Example:
10.89.145.143:3100/+ASM,10.89.134.144:3100/+ASM
The correct format of the ASM connection string should be used when using ASM with a cluster format.
As a part of a Qlik Replicate upgrade to 2024.5, SAP HANA Source Endpoints using Version 1 configuration are converted to Version 3 CTS Mode.
When the V1 task is resumed, Qlik Replicate will create the attrep_cdc_changes_cts table and add "V3" triggers to all tables in the task. All changes to the tables between the time that the task was stopped (before the upgrade) and the time the task was resumed (after the upgrade) will be in the attrep_cdc_changes table and ignored by 2024.5.
As a workaround, the Source Endpoint can be migrated before upgrading to 2024.5 and set to use the Log Table configuration (located in the Advanced Tab). This will ensure that no data loss occurs during the upgrade to the new version. During this time, you would be able to keep running the existing triggers as needed before the switch to the recommended Version 3 CTS Mode triggers.
For more information on how to convert from Version 1 to Version 3, see Qlik Replicate Trigger SAP HANA conversion from Version 1 to Version 2 or Version 3.
QB-28825
Data encryption was enabled per the instructions in How to enable Data Encryption In Qlik Sense Enterprise On Windows. Since then, apps can no longer be duplicated or created, even by the Qlik Root Aadmn.
The following errors are displayed.
Creating an app from the hub:
The app could not be created. Please try again.
When duplicating an app in the QMC:
Service unavailable
Verify to run the command which creates the self-signed certificates with the Qlik Sense service account. See Encryption certificates.
For instructions, see step 4 in the encryption article.
An incorrect account was used when creating the certificate (such as a local account, but not the service account). The service account does therefore not have access to the certificate.
This article provides a guide on installing Qlik Replicate on a docker image.
sudo rpm -qa|grep dockersudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-laster-logrotate docker-logrotate docker-engine
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install --allowerasing docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker
/kit
" The /kit directory is a temporary folder used to store installation files. In the example below, the RPM file is areplicate-2024.5.0-357.x86_64.rpm
. Once the installation is complete, the entire /kit folder can be safely deleted.mkdir -p /kit/ar_docker
cd /kit
rpm2cpio areplicate-2024.5.0-357.x86_64.rpm | cpio -iv --make-directories --no-absolute-filenames -D ar_docker/ ./opt/attunity/replicate/addons/samples/docker/*
mv ./ar_docker/opt/attunity/replicate/addons/samples/docker/* ./ar_docker
rm -rf ./ar_docker/opt
cd /kit/ar_docker
cp ../areplicate-2024.5.0-357.x86_64.rpm .
./create-dockerfile.sh
/kit/ar_docker/Dockerfile
, from:
RUN yum -y install /tmp/areplicate-*.rpmto
RUN systemd=no yum -y install /tmp/areplicate-*.rpm
NOTE!
The parameter systemd=no is used to solve the below error you may hit during the docker build stage: This rpm is not supported on your system (no systemctl), exiting. error: %prein(areplicate-2024.5.0-357.x86_64) scriptlet failed, exit status 43
NOTE!
The password should not be empty and must be strong enough.
WARNING!
If you want to install ODBC Drivers, please make the corresponding ODBC Drivers rpm files are ready in this folder. If you want to skip the ODBC Drivers installation at present, rename or delete the file "drivers" in this folder.
docker build --no-cache -t johnw/replicate:2024.5 .where
/johnw/replicate:2024.5
is the image tag.Do not forget the last period "."
docker run -d --name ar --hostname cdc2 -e ReplicateRestPort=3552 -p 3552:3552 -v /dockermount/data/replicate/data:/replicate/data johnw/replicate:2024.5
Now Qlik Replicate is running in the docker and can be accessed from Qlik Replicate Console GUI.
The Qlik Sense Desktop or Server installation fails with:
INSTALLATION FAILED
AN ERROR HAS OCCURRED
For detailed information see the log file.
The installation logs (How to read the installation logs for Qlik products) will read:
Error 0x80070643: Failed to install MSI package.
Error 0x80070643: Failed to configure per-user MSI package.
Detected failing msi: DemoApps
Error 0x80070643: Failed to install MSI package.
Error 0x80070643: Failed to configure per-user MSI package.
Detected failing msi: SenseDesktop
Applied execute package: SenseDesktop, result: 0x80070643, restart: None
Error 0x80070643: Failed to execute MSI package.
ProgressTypeInstallation
Starting rollback execution of SenseDesktop
CAQuietExec: Entering CAQuietExec in C:\WINDOWS\Installer\MSIE865.tmp, version 3.10.2103.0
CAQuietExec: "powershell" -NoLogo -NonInteractive -InputFormat None
CAQuietExec: Error 0x80070002: Command failed to execute.
CAQuietExec: Error 0x80070002: QuietExec Failed
CAQuietExec: Error 0x80070002: Failed in ExecCommon method
CustomAction CA_ConvertToUTF8 returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
MSI (s) (74:54) [10:44:37:941]: Note: 1: 2265 2: 3: -2147287035
MSI (s) (74:54) [10:44:37:942]: User policy value 'DisableRollback' is 0
MSI (s) (74:54) [10:44:37:942]: Machine policy value 'DisableRollback' is 0
Action ended 10:44:37: InstallFinalize. Return value 3.
The Failed to Install MSI Package can have a number of different root causes.
Dependencies may be missing. Install the latest C++ redistributable.
This issue may occur if the MSI software update registration has become corrupted, or if the .NET Framework installation on the computer has become corrupted (source: Microsoft, KB976982).
Repair or reinstall .NET framework.
How to troubleshoot:
Option 1
********************************************
********* Environment Variables **********
********************************************
.......
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Users\administrator\AppData\Local\Microsoft\WindowsApps;C:\WINDOWS\system32\inetsrv\
Install the Web Platform Installer Extension that includes the latest components of the Microsoft Web Platform, including Internet Information Services (IIS), SQL Server Express, .NET Framework and Visual Studio.
More information about the tool on the Microsoft page.
Verify if there are pending Windows updates. Complete them and try again.
The installation may fail if the installer is being executed from a network drive. Copy the installer to your local drive.
Content
Qlik Products have generally utilized license keys to enforce license entitlements and use rights. During activation, the licensed entitlement is downloaded to the product in the format of a Licensing Enabler File (LEF). Activation requires internet connectivity to the deployment and is triggered by entering a 16-digit serial number and a corresponding control number. Offline activation is also supported using a manual LEF by copying and pasting a text file into the activation user dialog. Communication is through an http protocol.
Introduced with the February 2019 release[GM1] of Qlik Sense Enterprise, Qlik has developed an alternative process for product activation. There have been several drivers for this change, including a move to an https protocol for a more secure connection between the Customer deployment and Qlik infrastructure. More information follows below.
To allow for Customers to make the decision when to move, Qlik has introduced the use of a Signed License Key to determine which activation method to use. Over time Qlik Licensing Service will replace the current activation process, but for now both methods of activations will work.
As mentioned above, Qlik has added one additional way to activate Qlik products.
JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed. JWT’s can be signed using a secret (with the HMAC algorithm) or a public/private key pair using RSA or ECDSA.
Although JWT’s can be encrypted to also provide secrecy between parties, we will focus on signed tokens. Signed tokens can verify the integrity of the claims contained within it, while encrypted tokens hide those claims from other parties. When tokens are signed using public/private key pairs, the signature also certifies that only the party holding the private key is the one that signed it. That is why we refer to this as the Signed License Key.
With the use of a Signed License Key, there are more Product and deployment offers to use.
All of the above is enabled by the use of the Signed License Key. This made possible as the local deployment will sync entitlement data with all deployment’s using the same Signed License Key through an online database, License Backend, hosted by Qlik within Qlik Cloud.
This is initiated by entering a Signed License Key to the Control Panel. The request is performed by the service Licenses using port 443 (https protocol procedures applies).
Signed license Key
|
Example data |
A Signed License Key based on one of Qlik’s internal keys.
|
eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCIsImtpZCI6ImEzMzdhZDE3LTk1ODctNGNhOS05M2I3LTBi MmI5ZTNlOWI0OCJ9.eyJqdGkiOiI2MjNhYTlhZi05NTBmLTQ3ZjctOGJmMC1mNGQzOWY0MmQ5N mMiLCJsaWNlbnNlIjoiOTk5OTAwMDAwMDAwMTI1MyJ9.YJqTct2ngqLfl2VP3jxW4RsDNK2MTL-BpJ WnBdIfF5gGbJcX0hc__tfIa2ab5ZrL9h6tsZxTwgucTFiRTAOz8PaOQP7JTnhPCyrBZwpnmhvCrSHx2 C-HbCARFUIueBzMg8fgvWH-3HxBuxx6jnDhekDTUbb12vBq7CySampJkgMT7QsDdUkeJy5E7O0U 8yhd1RtEDeuTbeX35eIdQUN4DyJWHHPiT9qZt1AV0_Ofe1iLKxYZMa5jC0kIsVwYnRCJzibZlrLE7mS VlNitxmcm8OoUrR_ZIk8VuOkoz_qqy8N_wwrt7FcT2slWz50XzuL8TIWY9mcGIL |
Assignment information (what user has what type of access assigned) is synchronized from the license service to license.qlikcloud.com every 10 minutes.
Changes to a license (such as adding additional analyzer capacity) can take up to 24 hours to be retrieved.
Data Element | Comment | Example Data |
Signed License Key | See above | |
Cause | Initial or Update | “Initial” |
User agent | build by the License service version (operating system) and Product (e.g. QSEfW, QCS, QSEfE, QV) | Licenses/1.6.4 (windows) QSEfW |
Data Element | Comment | Sample Data |
License definition | content variable based on product and entitlement | "name": "analyzer_time", "usage": {"class": "time", "minimum": 5}, "provisions": [{ "accessType":"analyzer"} ],"units": [{"count": 200, "valid": "2018-06-01/2018-12-31"}]}, "name": "professional", "usage": { "class": "assigned", "minimum": 1 }, "provisions": [{ "accessType": "professional" }],"units": [{ "count": 10, "valid": "" }]} |
(Time schedule is not disclosed and includes grace time to support outages in the internet connection, a/k/a Optimistic Delegation.)
Data Element | Comment | Sample Data |
Signed License Key |
See above | |
Array Element id | Used for internal match only | 1 |
Allotment name | alternatives are Analyzer_Time, Core_Time | “analyzer_time” |
Year/Month | YYYY-MM | 2018-11 |
Consumption | for this deployment since last sync | 242 |
Source | hashed ID to make each deployment unique, e.g. a Qlik Sense Enterprise on Windows and a Qlik Sense Enterprise on Kubernetes will have different Source ID's | fbe89d02-6d24-4595-915e-c52ce76f2195 |
User agent | same construct as for as activation request | Licenses/1.6.4 (windows) QSEfW |
Data Element | Comment | Sample Data |
Total consumption | Used by the Product for enforcement. Deny access will be executed if quota has been exceeded. Quota is set in the LEF. Additional quota for the month could be managed as Overage in the LEF. This would contain an Overage Value (COUNT) or the value YES. Total quota for the month is calculated as licensed quota + Overage quota. If the LEF contains the value YES, there will be no cap on the capacity for the Year/Month. |
12345 |
Data Element | Comment | Sample Data |
Signed License Key | See above | |
Allotment name | Professional / Analyzer | “professional” |
Subject | Domain / User ID; if this an add or delete transaction. By delete the subject will be removed immediately. An internal id will be used to secure sync to other deployments using the same Signed License Key. The internal id will disappear within 60 days after a delete transaction. (This information is stored for all assigned users until such a time that the assignment is deleted at which point it is deleted. The information is used for synchronizing assignments across deployments in order to facilitate the single-license-multi-deployment scenario. It is encrypted in transit and at rest.) |
“acme\bob”
(For information on how data is submitted and stored in the audit logs see here) |
User agent | Build by the License service version (operating system) and Product (e.g. QSEfW, QCS, QSEfE, QV) | Licenses/1.6.4 (windows) QSEfW |
Source | Hashed ID to make each deployment unique, e.g. a Qlik Sense Enterprise on Windows and a Qlik Sense Enterprise on Kubernetes will have different Source ID's | fbe89d02-6d24-4595-915e-c52ce76f2195 |
Sync metadata | Versioning information about the subjects and list of subjects to manage the synchronization process | { "source": "my assignments", "bases": [{ "license": "1234 1234 1234 1234", "version": 0 }], "patches": [{ "instance": "", "version": 0, "license": "1234 1234 1234 1234", "allotment": "analyzer", "subject": \\generated4, "created": "2019-04-18T10:01:35.024031Z" } |
Data Element | Comment | Sample Data |
Signed License Key | See above | |
Subject | Including subjects changed by other deployments | “acme\bob” |
Sync metadata | Versioning information about the subjects and list of subjects to manage the synchronization process | { "bases": [{ "license": "1234 1234 1234 1234", "version": 17 }], "patches": [{ "instance": "5382018630938057025", "version": 14, "license": "1234 1234 1234 1234", "allotment": "analyzer", "subject": ACME\\bob", "created": "2019-04-18T10:01:35.024Z", "rejection": "" }] |
This Reference Guide is intended solely for general informational purposes and its contents do not form part of the product documentation. The information in this guide is subject to change without notice. ALL INFORMATION IN THIS GUIDE IS BELIEVED TO BE ACCURATE BUT IS PRESENTED WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. Qlik makes no commitment to deliver any future functionality and purchasing decisions should not be based upon any future expectation.
App reloads in Qlik Cloud fail with the below error message:
Data has not been loaded. Please correct the error and try loading again.
The following error occurred: The memory limit for the request was reached
There are three main directions on mitigating high memory allocation problems;
The Qlik Sense Engine in Qlk Cloud is configured to have a sandbox limit for reloads so that they do not expand infinitely and bring down the Engine running the reload. Based on subscription details there is a limit for each app file. Still, additional memory is typically required during reload to process calculations before the app's data model has been updated.
During a reload the Engine will periodically measure allocated memory. If the allocated memory reaches the reload limit the reload will fail with a memory exceeded error.
Need to know the exact values?
For detailed information about Qlik Cloud guardrails, see Qlik Cloud Analytics specifications and capacity.
Large App support
Qlik Engine: Hypercube Memory Limit
QB-5268
By default, QlikView Publisher sets the number of "Max number of QlikView engines to use for distribution" to 4. This value determines how many QlikView Publisher tasks can be run in parallel and can be freely adjusted to suit any environment. Sometimes you see the error/warning Failed to allocate engine before you hit the limit you have set.
A more detailed best practice guide is available in Scaling the QlikView Publisher.
The image below depicts where to increase the number of engines for distribution or administration. (default 4 and 20 respectively)
When determining how many Reload Engines to allow per QlikView Publisher, there are a number of factors to take into consideration.
The first and fundamental factor that affects how many Reloads that can safely take place simultaneously, is that the Reload Engine, the QVB.exe process, is a fully MultiThreaded process. This means that a single executing task using a Reload Engine WILL try to use as much resources from the hardware as it can, without limit. The limiting factors are only Script Efficiency and Data transfer rates. A reload script that does lots of data aggregation at script level will have a big impact on the CPU utilization for that Reload Task for example. Tasks that run in parallel on a server will compete for the same pool of resources containing CPU cycles and RAM.
With this basic fundamental factor in mind, we can start discussing the possible settings
The first consideration is that you should never allow for more Engines than the Server has CPU cores -1. So for a Server with 8 CPU cores, we should never sat a value higher than 7.
Note also, that the QlikView Distribution Service has been equipped with a load protection mechanism since the 12.10 release. See Tasks are not executed as expected and are shown in status Queued for details.
The second consideration is that even on big servers with lots of CPU cores (16+) it rarely pays to go higher than approximately 13 simultaneous reload engines allowed. This is partly due to the first fundamental factor (every running task will try to consume all the resources) and partly due to other bottlenecks, where for example multiple data connections using the same drive will start becoming slower as the concurrent connections goes up. Going for a high number also normally increases the failure rate significantly. Qlik recommends starting with a low number and then increasing gradually until you hit the sweet-spot for your own environment, where you are getting a high throughput without introducing a high failure rate. If your reload schedule calls for a high number of simultaneous tasks to execute, you will be better off clustering the Publisher role over more servers than increasing the number of engines on a single node.
A third consideration is Windows settings that affect the number of concurrent processes of the same kind. If you enable a high number of reload engines and start seeing windows errors related to Windows running out of Desktop Heap Size. This may be visible in the Windows System Event log of the server running Qlikview Distribution Service, with errors saying "Desktop Heap exhausted". If so, you will need to adjust Windows Desktop Heap Size to allow for a higher server load. Allowing for a bigger Desktop Heap may also allow a highly loaded server to run for longer periods of time without the need for server restarts.
Messages like this,
Failed to create QlikView Engine.. Exception=System.Runtime.InteropServices.COMException (0x80080005)
Shows that there is an issue with desktop heap size.
IMPORTANT: Windows registry changes are made at your own risk and are not supported by Qlik Support. Please make a backup of the Windows registry before applying changes to enable rollback if the setting change fails or introduces Windows instability.
Desktop Memory Heap size is control in the following Windows registry key on the server running Qlikview Distribution Service:
Change the desktop heap setting by setting the SharedSection value to 1024,20480,2048. After change the registry key should look something like the following (all on one line):
%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,20480,2048 ...
Notice that the default value is 1024,3072,512 in x86 or 1024,20480,768 in x64 environments.
Also, please note that the skipped part (marked as "..." ) might differ according to the operating system version and should not be modified.
Depending on size of deployment and complexity of tasks/scripts you might need to increase the Non-interactive Desktop Heap even further, the following list gives the next possible setting for the value.
%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,20480,4096 ...
OR
%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,20480,6144 ...
OR
%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,20480,8192 ...
Microsoft reference regarding Windows heap and Server 2012: https://support.microsoft.com/en-us/kb/947246
A more detailed best practice guide is available in Scaling the QlikView Publisher.
You can apply styling to customize the app based on your company standards. These styles are managed through custom themes.
To create your own custom theme, you’ll need to compile a compressed zip folder with three key components:
See Themes overview.
Once you’ve created the theme, you can upload it to your Qlik Cloud Management Console.
In this article, we detail the 12 steps necessary to successfully configure Qlik Sense Enterprise on Windows after an Active Directory Domain name change or moving Qlik Sense to a new domain.
Depending on how you have configured your platform, not all the steps might be applicable. Before updating any hostname in Qlik Sense, make sure that the original value is using the old domain name. In some case, you may have configured “localhost” or the server name without any reference to the domain so there is no need in these cases to perform any update.
In this scenario we are updating a three-node environment running Qlik Sense February 2021:
The domain has been changed from DOMAIN.local to DOMAIN2.local
The servers mentioned below are already part of the new domain name DOMAIN2.local and their Fully Qualified Domain Name (FQDN) is already updated as followed:
All Qlik Sense services have been stopped on every node.
The first step is to update the postgres.conf file to listen on the correct hostname
Before doing any further changes, it is important to take a backup of your Qlik Sense Platform
Now we update the node names in the database with the new Fully Qualified Domain Name.
UPDATE public."Users"
SET "UserDirectory" = 'DOMAIN2'
WHERE "UserDirectory" = 'DOMAIN';
SELECT * FROM public."Users"
cd "C:\Program Files\Qlik\Sense\NLAppSearch\install"
.\Configure-Service.ps1 QlikServer3.domain2.local 4432 qliksenserepository <qliksenserepository_password>
cd "C:\Program Files\Qlik\Sense\AppDistributionService"
.\Configure-Service.ps1 QlikServer3.domain2.local 4432 qliksenserepository <qliksenserepository_password>
cd "C:\Program Files\Qlik\Sense\HybridDeploymentService"
.\Configure-Service.ps1 QlikServer3.domain2.local 4432 qliksenserepository <qliksenserepository_password>
cd "C:\Program Files\Qlik\Sense\Licenses"
.\Configure-Service.ps1 QlikServer3.domain2.local 4432 qliksenserepository <qliksenserepository_password>
cd "C:\Program Files\Qlik\Sense\NotifierService\install"
.\Configure-Service.ps1 QlikServer3.domain2.local 4432 qliksenserepository <qliksenserepository_password>
cd "C:\Program Files\Qlik\Sense\MobilityRegistrarService\install"
.\Configure-Service.ps1 QlikServer3.domain2.local 4432 qliksenserepository <qliksenserepository_password>
cd "C:\Program Files\Qlik\Sense\PrecedentsService\install"
.\Configure-Service.ps1 QlikServer3.domain2.local 4432 qliksenserepository <qliksenserepository_password>
cd "C:\Program Files\Qlik\Sense\DataPrepService\install"
.\Configure-Service.ps1 QlikServer3.domain2.local 4432 qliksenserepository <qliksenserepository_password>
If you are using the Qlik Logging Service;
cd "C:\Program Files\Qlik\Sense\Logging"
Qlik.Logging.Service.exe validate
cd "C:\Program Files\Qlik\Sense\Logging"
Qlik.Logging.Service.exe update -h QlikServer3.domain2.local
"C:\Program Files\Qlik\Sense\Repository\Repository.exe" -bootstrap -iscentral -restorehostname
If you are syncing your users with a User Directory Connector you will need to change the LDAP path to point to the new domain.
You will need to update the monitoring apps and their associated data connection to use the new Fully Qualified Domain Name
It is possible that you have created rules based on the User Directory. As you have changed the domain name, the user directory has also changed in Qlik Sense so you will need to update those to reflect that.
The information in this article is provided as-is and to be used at own discretion. Depending on tool(s) used, customization(s), and/or other factors ongoing support on the solution below may not be provided by Qlik Support.
When attempting to connect to the Sharepoint 365 Qlik Web Connector in the Script Editor the following error is shown "Internal Server Error."
The URL can be accessed without issue outside of Qlik by other applications. The necessary ports have been opened and Server connectivity is stable.
This article is intended for the stand-alone installation of Qlik Web Connectors, rather than built in connectors. See Install connectors separately.
Open the deploy.config located in the WebConnector folder
Locate DefaultAllowed IPAddresses and insert "Any" as seen below:
<DefaultAllowedIpAddresses>any</DefaultAllowedIpAddresses>
Locate AllowRemoteAccess and insert "true" as seen below:
<AllowRemoteAccess>true</AllowRemoteAccess>
The <AllowRemoteAccesss> set to true allows the following setting to be seen when selecting
My Settings in the Web Connector UI:
Add Allowed IP Addresses : [any] in the Web Connector UI as seen above
The information in this article is provided as-is and to be used at own discretion. Depending on tool(s) used, customization(s), and/or other factors ongoing support on the solution below may not be provided by Qlik Support.
This article gives an overview of the available blocks in the Github connector in Qlik Application Automation. It will also go over some basic examples of retrieving file/blob contents from your repos as well as other functionalities within a GitHub account.
As with most connectors provided for automations the authentication for this connector is based on the oAuth2 Protocol, so when connecting to it you provide the user name and password of the account directly to the Github platform to request access so it is done in the most secure manner there is.
Let's now go over a few basic examples of how to use the Github connector:
How to list owned repositories and check their contents from your Github account:
Now the "list my repositories" block offers a couple of filtering options depending what result you want (all repos or just the private or public ones and if you want the result to come in sorted by some rule) but they are mostly optional. Not filling them in will return by default all repositories.
As for the "List repository contents" block you will need to fill in the username you use for your github account as well as the repository name which can be filled in with the results gotten from the first block. You can leave the path parameter empty to get the contents from the root folder or you can specify a path and the contents of that path will be returned.
As stated, if you expect to retrieve only one record, the use of "get repository content" block is more better suited. Also, you might want to switch this "List repository contents" block On Error status to either warning or ignore since Github API platform returns a 404 error if one of the queried repositories is empty.
Now if you are planning to use the "Get repository content" block another warning should be mentioned and that this block only works for files or blobs up to a maximum of 1 MB in size, as per Githubs platform limitations. The response of this block should look like:
As you can see we have a couple of information stubs of that file, but most importantly from here is the SHA property, which is needed if you are planning to later on use the "Create or update file contents" block, required input parameter for the update of a file/blob.
Now if you're planning on updating files that are bigger than 1MB and you require the SHA of that file, we suggest using the list repository contents block and search for the required file and SHA in that result.
As for other functionalities of the Github connector we support also getting and listing commits or issues present in a repository, listing of users and many other requests but, if you are in need of a request that isn't present, we also offer the functionality to create your own requests to the Github API by making use of the RAW API blocks. These API blocks and their uses are explained in a separate article.
You can find attached to this article a simple JSON example which you can upload to your workspace, if you want to see a quick example of how to use version control to back up your QCS apps I suggest visiting the related article.
The information in this article is provided as-is and to be used at own discretion. Depending on tool(s) used, customization(s), and/or other factors ongoing support on the solution below may not be provided by Qlik Support.
How to: Qlik Application Automation for backing up and versioning Qlik Cloud apps on Github
This article covers the usage of the Qlik Application Automation cloud storage blocks and gives design flow examples which apply them. You can also download an example JSON using Google Cloud Storage, and we have compiled a list of links for more in-depth platform connections and atypical usages.
Content
Selecting Cloud storage when creating your automation will present you with the following list:
Here is an example of how to verify if a file exists prior to creating a new one. This is specifically important when you set up an automation meant to save your result in a target file that might or might not be at the location suggested. Since you cannot create a new file if a previous one exists, you will need to apply the following to your automation:
You can verify if the file exists initially, and, based on the response from that block, either simply create a new file or delete the old file and create a new one to write data to.
And last but not least, this is a list of supported platforms for the native blocks as well as links to how to connect to them as well as more quirky details they have.
The information in this article is provided as-is and to be used at own discretion. Depending on tool(s) used, customization(s), and/or other factors ongoing support on the solution below may not be provided by Qlik Support.
After an upgrade of Qlik Sense, the following errors may be observed.
Accessing the Data Load Editor to review data connections fails with:
Unknown Error
On the Hub, Creating a new app fails with:
An error occurred.
The app could not be created. Please try again.
The Qlik Sense logs (How To Collect Log Files From Qlik Sense Enterprise on Windows) report:
API call to Engine service was not successful: Failed to get app 'StaticByteSize'
Error in EntityChanged event handler Exception of type 'System.Exception' was thrown
Failed setting secure crypto protocols with error code
A combination of these errors is typically caused by wrongly configured or mismatched TLS protocols or ciphers or IPv6 settings still present in the Qlik Sense settings file which should have been overwritten during an upgrade.
Any configuration steps in the below solutions must be performed on all nodes.
Verify that the best practices for TLS and SSL support in Qlik Sense are followed and that the same set of TLS versions and cipher suites are used consistently across all components of the environment, especially in a multi-node setup.
For reference:
Review the Qlik Sense Engine Settings.ini file (C:\ProgramData\Qlik\Sense\Engine\Settings.ini) and remove the line: EnableIPv6Support=0
Follow the instructions in Data connections in Qlik Sense not visible in Data Load Editor or ErrorCode 11041 / 11043 and An error occurred / Failed to load connection error message in Qlik Sense.
See The app could not be created. Please try again - Qlik Sense.
Starting the Qlik Web Connector (QWC) fails with the following error:
Windows could not start the Qlik Web Connectors service on Local Computer.
Error 1064: An exception occurred in the service when handling the control request.
The QlikWebConnectorsQVC.exe is already running.
The Windows Event logs (Application log) you will have recorded the following errors:
Service cannot be started. APIConnectorInterfaces.Exceptions.QwcException: MULTIPLE_INSTANCES_NOT_PERMITTED at QlikWebConnectorsService.Service.OnStart(String[] args) at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)
This most frequently happens after setting up the Web Connector Service as a Windows service. See Setting up the Qlik Web Connectors to run as a Service.
QlikSenseServiceHelper.exe is a temporary service used by Qlik Sense during installation, upgrade, or uninstallation processes.
Its primary function is to assist in removing already existing Qlik Sense services if they cannot be uninstalled automatically. This service is designed to run only as needed and is intended to be removed automatically once its task is complete. If QlikSenseServiceHelper.exe persists after the installation or upgrade process, it indicates that it was not successfully removed, and a server restart may be required to clean up the service.
If this service is flagged as a security concern during scans, it is generally safe to ignore it, given its role in the Qlik Sense upgrade process. However, it is essential to verify that the service is from a legitimate source and not indicative of other security issues.