Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Advanced options is not visible when editing a sheet. This can happen on a specific app even if the option was present before.
You can activate the "Show Sheet Header" option in the app settings to make the "Advanced option" button visible again.
For some reasons, the "Show Sheet Header" could be deactivated in an app. "Advanced Options" is invisible when this happens, because it is located in the sheet header that is removed. The app looks like this in editing mode:
There may be several different symptoms associated with a need to regenerate and redistribute certificates;
This article does not cover the use of a 3rd party certificate for end user Hub access, but the certificates used for communication between the Sense services. For recommendation on how to use a 3rd party certificate for end user access, see How to: Change the certificate used by the Qlik Sense Proxy to a custom third party certificate
Do not perform the below steps in a production environment, without first doing a backup of the existing certificates. Certificates are being used to encrypt information in the QRS database, such as connection strings. By recreating certificates, you may lose information in your current setup.
By removing the old/bad certificates, and restarting the Qlik Sense Repository Service (QRS), the correct certificates can be recreated by the service. If trying to remove certs, only the removal steps need to be followed.
The instructions are to be carried out on the Qlik Sense Central Node. In the case of a multi-node deployment, verify which node is the central node before continuing.
If the current central node role is held by the failover, you need to fail the role back to the original central node by shutting down all the nodes (this implies downtime). Then start the original central node, reissue the certificates on it with this article, and when the central node is working apply the article Rim node not communicating with central node - certificates not installed correctly on each Rim node.
Test all data connections after the certificates are regenerated. It is likely that data connections with passwords will fail. This is because passwords are saved in the repository database with encryption. That encryption is based on a hash from the certificates. When the Qlik Sense signed certificates are regenerated, this hash is no longer valid, and the saved data connection passwords can not be decrypted. The customer must re-enter the passwords in each data connection and save. See article: Repository System Log Shows Error "Not possible to decrypt encrypted string in database"
There is no need to perform a full reinstall to propagate new certificates. Certificates are created by the QRS automatically if not found during the service startup process.
The steps in this section must be performed after recreating certificates as described above.
Execute following query against SenseServices database:
DROP TABLE IF EXISTS hybrid_deployment_service.mt_doc_asymmetrickeysencrypt CASCADE;
Navigate to Deployments page of Multi-cloud Setup Console (MSC).
Delete and re-add any existing deployments by following the steps mentioned in Distributing apps from Qlik Sense Enterprise on Windows to Qlik Sense Enterprise SaaS and Distributing apps to Qlik Sense Enterprise on Kubernetes.
After the certificates have been recreated and then redistributed to all of the rim nodes, the node.js certificates stored locally on the central and all rim nodes also need to be recreated. Follow the below steps to perform this action:
Test all data connections after the certificates are rebuilt. It is likely that data connections with passwords will fail. This is because passwords are saved in the repository database with encryption. That encryption is based on a hash from the certs. When the Qlik Sense self-signed cert is rebuilt, this hash is no longer valid, and so the saved data connection passwords will fail. The customer must re-enter the passwords in each data connection and save. See article: Repository System Log Shows Error "Not possible to decrypt encrypted string in database"
Notice if using an official Signed Server Certificate from a trusted Certificate Authority
The certificate information will also be in the QMC, under Proxies, with the Certificate thumbprint listed. If trying to merely remove all aspects of certs, this will need to be removed as well.
If the above does not work, see Qlik Sense Enterprise Hub and Qlik Management Console (QMC) down - bootstrap fails with "Newly created client certificate not valid; root certificate can't sign new certificates"
When migrating Camel 3 projects that use the camel-rabbitmq library to interact with RabbitMQ, several important changes in components, dependencies structure and connection configuration must be considered. The primary change involves shifting from the native camel-rabbitmq component to the spring-rabbitmq component, as well as updating the connection configuration approach.
This article outlines all the necessary steps to successfully migrate projects that use the cMessagingEndpoint component with RabbitMQ.
The QlikView Services can be set up to either use the local QlikView Administrators Group, or Digital Certificates. The Service Account has specific requirements.
The two options during installation are Use digital certificates and Use QlikView Administrators Group.
Authenticate communication between QlikView servers using digital certificates and SSL. This alternative is recommended in environments where not all servers have access to a common Windows Active Directory or when the security provided by certificate authentication is required. Note that digital certificates are only supported by Windows Server 2008 R2 and later.
Authenticate communication between QlikView services based on membership in the local Windows group QlikViewAdministrators. This alternative can be used in environments where all servers that are part of the QlikView installation can authenticate using a common Windows Active Directory.
Regardless of the option chosen, the service account used to run the services has to be:
Note: GMSA (Standalone Managed Service Accounts) are not supported for Qlik products
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.
This article aims to demonstrate how to connect AD users to a Qlik Replicate instance installed on Linux.
We suggest handling user roles in Activity Directory on the security group level rather than individual roles. This allows for better governance and is generally considered a good practice.
For instance, you can add four groups:
And then add your desired users to these specific groups.
A DI task, which includes a tSystem component responsible for executing a PGP encryption command, was deployed to run on a remote Jobserver and encountered an error:
"1001 could not open keyrings, file not found."
"1001 could not open keyrings, file not found" - this appears to be an error message related to keyring or credential access on a system. This specific error typically occurs in Linux systems when there's an issue with the keyring service. The "1001" likely refers to a user ID, and the system is unable to find or access the keyring file that stores passwords and credentials.
After conducting a thorough examination, it was determined that in comparison to the working environment, the Jobserver utilizes a specific user session to run as a service. However, on the new/updated environment, the Jobserver service was not configured with the appropriate user/logged-on session.
Ensure that the appropriate user session is used for the Jobserver service registry in Linux/Windows.
If your Qlik Sense Enterprise on Windows version is not compatible with the QSR database.
This may occur if:
An incorrect version of Qlik Sense Enterprise on Windows in a multi node environment will trigger a database migration to this version. The result is that the Qlik Sense Repository service fails to start with the error:
Fatal exception during startup Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration.↵↓An exception was thrown while invoking the constructor 'Void .ctor()' on type 'DatabaseContext
As database migration started which had caused database corruption, you need to revert back to the old database backup to resolve this issue or contact Qlik Support for assistance.
QB-8813
Qlik Sense Enterprise on Windows all versions
The upgrade to Java 17 and Apache Camel 4 marks a significant milestone for Qlik Talend users, ensuring alignment with modern technological standards while maintaining security and performance. This article provides technical details on why the move is important, as well as the move's key benefits and impacts.
Content
Camel 4 removed OSGi support, this increased the required efforts to build a Talend Runtime container “Camel 4 compliant”. It has been resolved by the camel-karaf project (https://github.com/apache/camel-karaf).
Camel 4.8.1 LTS (Long Term Support version) in both Studio and Runtime.
API libraries updates
Library | Current Version | Target version |
jakarta.activation-api |
1.2.2 |
2.1.3 |
javax.activation |
1.2.0 |
(jakarta.activation) 2.0.1 |
jakarta.annotation-api |
1.3.5 |
2.1.1 |
jakarta.jws-api |
2.1.0 |
3.0.0 |
jakarta.xml.ws-api |
2.3.3 |
4.0.2 |
jakarta.ws.rs-api |
2.1.6 |
3.1.0 |
jakarta.xml.bind-api |
2.3.3 |
4.0.2 |
jakarta.xml.soap-api |
1.4.1 |
3.0.2 |
javax.servlet-api |
3.1.0 |
(jakarta.servlet-api) 6.1.0 |
jaxb-core |
2.2.11 |
4.0.5 |
jaxb-impl |
2.2.11 |
4.0.5 |
jaxb-runtime |
2.3.2 |
4.0.5 |
txw2 |
2.3.3 |
4.0.5 |
jakarta.jms-api |
2.0.3 |
3.1.0 |
jakarta.mail |
1.6.7 |
(jakarta.mail-api} 2.1.3 |
Studio code-gen updates
For the custom bean classes, javax package names above will be migrated to jakarta package names automatically.
Example:
import javax.annotation.Generated; => import jakarta.annotation.Generated;
New Component | URI | Description | Status |
camel-langchain4j-chat |
langchain4j-chat:chatIdId[?options] |
Allows you to integrate with any Large Language Model (LLM) supported by LangChain4j. (Since Camel 4.5) see LangChain4j Chat |
Added to cMessagingEndpoint |
camel-langchain4j-web-search |
langchain4j-web-search:searchId[?options] |
Provides support for web searching using the LangChain4j Web Search Engines. (Since Camel 4.8) |
Added to cMessagingEndpoint |
camel-langchain4j-tools |
langchain4j-tools:toolSet[?options] |
Allows you to use function calling features from Large Language Models (LLMs) supported by LangChain4j. (Since Camel 4.8) |
Added to cMessagingEndpoint |
camel-langchain4j-embeddings |
langchain4j-embeddings:embeddingId[?options] |
Provides support for compute embeddings using LangChain4j embeddings. (Since Camel 4.5) |
Added to cMessagingEndpoint |
camel-aws-bedrock |
aws-bedrock://label[?options] |
Supports invoking a supported LLM model from AWS Bedrock service. (Since Camel 4.5) see AWS Bedrock |
Added to cMessagingEndpoint |
camel-aws-config |
aws-config://label[?options] |
Supports create and delete config rules AWS ECS clusters instances. (Since Camel 4.3) |
it is added to cMessagingEndpoint |
camel-aws2-redshift |
aws2-redshift-data://label[?options] |
The AWS2 Redshift Data component supports the following operations on AWS Redshift: (Since Camel 4.1) see AWS RedshiftData |
Added to cMessagingEndpoint |
camel-aws2-step-functions |
aws2-step-functions://label[?options] |
Supports the following operations on AWS Step Functions. (Since Camel 4.0) |
Added to cMessagingEndpoint |
camel-aws2-timestream |
aws2-timestream://clientType:label[?options] |
Supports the following operations on AWS Timestream. (Since Camel 4.1) see AWS Timestream |
Added to cMessagingEndpoint |
camel-azure-files |
azure-files://account[.file.core.windows.net][:port]/share[/directory] |
Provides access to Azure Files. (Since Camel 3.22) see Azure Files |
Added to cMessagingEndpoint |
camel-dhis2 |
dhis2://operation/method[?options] |
The Camel DHIS2 component leverages the DHIS2 Java SDK to integrate Apache Camel with DHIS2. (Since Camel 4.0) see DHIS2 |
Added to cMessagingEndpoint |
camel-jte |
jte:templateName[?options] |
Allows for processing a message using a JTE template. (Since Camel 4.4) see JTE |
Added to cMessagingEndpoint |
camel-opensearch |
opensearch://clusterName[?options] |
Allows you to interface with an OpenSearch 2.8.x API using the Java API Client library. (Since Camel 4.0) see OpenSearch |
Added to cMessagingEndpoint |
camel-smb |
smb:address[:port]/shareName[?options] |
Provides a way to connect natively to SMB file shares, such as those provided by Microsoft Windows or Samba. (Since Camel 4.3) see SMB |
Added to cMessagingEndpoint |
camel-smooks |
smooks://smooks-config-path[?options] |
Break up the structured data (EDI, CSV, POJO, etc) of a Camel message body into fragments, (Since Camel 4.7) see Smooks |
Added to cMessagingEndpoint |
camel-thymeleaf |
thymeleaf:templateName[?options] |
Allows you to process a message using a Thymeleaf template. (Since Camel 4.1) see Thymeleaf |
Added to cMessagingEndpoint |
camel-wasm |
wasm://functionName?[options] |
Provides support to leverage Wasm functions for message transformation. (Since Camel 4.4) see Wasm |
Added to cMessagingEndpoint |
camel-zeebe |
zeebe://[endpoint]?[options] |
Provides the ability to interact with business processes in Zeebe. (Since Camel 3.21) see Zeebe |
Added to cMessagingEndpoint |
Removed Component | Alternative Component | Affected Route Component |
camel-any23 |
None |
cMessagingEndpoint |
camel-atlasmap |
None |
cMessagingEndpoint |
camel-atmos |
None |
cMessagingEndpoint |
camel-caffeine-lrucache |
camel-cache, camel-ignite, camel-infinispan |
cMessagingEndpoint |
camel-cdi |
camel-spring-boot, camel-quarkus |
cMessagingEndpoint |
camel-cmis |
None |
cMessagingEndpoint |
camel-corda |
None |
cMessagingEndpoint |
camel-directvm |
The one provided by camel-karaf project. |
No impact. |
camel-dozer |
camel-mapstruct |
cMessagingEndpoint |
camel-elasticsearch-rest |
Is renamed to camel-elasticsearch-rest-client |
cMessagingEndpoint |
camel-facebook |
camel-cxf, camel-rest? |
cMessagingEndpoint |
camel-gora |
None |
cMessagingEndpoint |
camel-hbase |
None |
cMessagingEndpoint |
camel-hdfs |
None |
cMessagingEndpoint |
camel-hyperledger-aries |
None |
No impact. |
camel-iota |
None |
No impact. |
camel-ipfs |
None |
No impact. |
camel-jbpm |
None |
cMessagingEndpoint |
camel-jclouds |
None |
cMessagingEndpoint |
camel-johnzon |
camel-jackson, camel-fastjson, camel-gson |
cMessagingEndpoint |
camel-microprofile-metrics |
camel-micrometer, camel-opentelemetry |
|
camel-milo |
None |
cMessagingEndpoint |
camel-opentracing |
camel-micrometer, camel-opentelemetry |
|
camel-rabbitmq |
camel-spring-rabbitmq |
cMessagingEndpoint |
camel-resteasy |
camel-cxf, camel-rest |
cMessagingEndpoint |
camel-rest-swagger |
camel-openapi-rest |
No impact. |
camel-spark |
None |
cMessagingEndpoint |
camel-spring-integration |
None |
|
camel-swagger-java |
camel-openapi-java |
|
camel-vm |
The one provided by camel-karaf project. |
No impact. |
camel-websocket |
camel-vertx-websocket |
|
camel-websocket-jsr356 |
camel-vertx-websocket |
|
camel-weka |
None |
No impact. |
camel-xstream |
camel-jacksonxml |
cMessagingEndpoint/cXmlWriter/cXmlParser |
camel-zipkin |
camel-micrometer, camel-opentelemetry |
cMessagingEndpoint |
What are the main version upgrades of 3rd-party libraries in Camel 4?
Dependency | Current Version | New Version |
Camel |
3.20.6 |
4.8.1 |
CXF |
3.5.5 |
4.1.0 |
Groovy |
3.0.17 |
4.0.22 |
qpid-jms-client |
1.7.0 |
2.5.0 |
Netty |
4.1.108.Final |
4.1.112.Final |
commons-pool2 |
2.11.1 |
2.12.0 |
aws.sdk |
2.20.17 |
2.27.19 |
Saxon-HE |
11.5 |
12.5 |
kafka-clients |
3.4.0 |
3.8.0 |
json-smart |
2.4.10 |
2.5.1 |
Asm |
9.3 |
9.7 |
Guava |
32.0.1-jre |
33.2.1-jre |
Snakeyaml |
1.32 |
2.3 |
slf4j |
1.7.34 |
2.0.16 |
Jetty |
9.4.54.v20240208 |
12.0.12 |
joda-time |
2.11.1 |
2.12.7 |
Caffeine |
3.1.2 |
3.1.8 |
commons-dbcp2 |
2.9.0 |
2.12.0 |
Ehcache |
3.9.3 |
3.10.8 |
Spring |
5.3.33 |
6.1.14 |
Micrometer |
1.9.17 |
1.13.1 |
commons-lang3 |
3.8.1 |
3.14.0 |
jackson |
2.16.0 |
2.17.2 |
activemq |
5.17.6 |
6.1.3 |
wss4j |
2.4.1 |
3.0.4 |
opensaml |
3.4.6 |
4.3.2 |
bouncycastle |
1.74 |
1.78 |
zookeeper |
3.8.4 |
3.9.2 |
You can get access to the advanced APIs in CamelContext known as ExtendedCamelContext via context.getCamelContextExtension().
For example, the Studio code-gen is changed from:
((org.apache.camel.impl.DefaultCamelContext) camelContext).setRegistry(realRegistry);
to:
((org.apache.camel.impl.DefaultCamelContext) camelContext).getCamelContextExtension().setRegistry(realRegistry);
More changes can be found here: Apache Camel 3.x to 4.0 Migration Guide (Apache.org).
From Camel 4.7.0, there is a newly available camel-activemq6 component which support connecting with AMQ Server 6.x and is jakarta compatible.
In Studio, switch to camel-activemq6 in the cMQConnectionFactory component is done, and cJMS component is updated with “jakarta.jms” support.
Now, the cMQConnectionFactory is able to connect to AMQ Server 5.x and AMQ Server 6.x.
For a matrix table, see Summary Table of ActiveMQ Series Status (Apache.org).
cAWSSQS
cExchangePattern
Kept INONLY/INOUT pattern, others are removed
cREST
cSOAP
cXmlParser/cXmlWriter
cMail
cKafka
cHttp
tRESTRequest
tRESTClient (deprecation planned, prefer tHTTPClient)
tESBConsumer
Environment
The task scheduling is stuck in the Sending/Requesting run loop, resulting in the following error messages appearing in the technical.log file.
The error java.lang.NoClassDefFoundError: Could not initialize class com.android.apksig.internal.apk.v1.V1SchemeSigner is caused by a java.lang.IllegalAccessError, which indicates that a class is attempting to access a restricted class (sun.security.x509.AlgorithmId) that is not exported by the java.base module in the newer Java versions.
Incompatible Java Version: this issue frequently arises when running an application on Java 17+ version, as access to internal APIs like sun.security.x509.AlgorithmId is restricted.
Downgrade the JAVA version of TAC from Java 17 to Java 11 (or 8), as the TAC patch you are currently using, such as V8_R2024-01, is still base on JDK 8 and 11.
Manually restart Qlik Sense services in right order is important because the Qlik Sense Repository Service is dependent on the Qlik Sense Repository Database (QRD) and the rest of the services are dependent on the Qlik Sense Repository Service.
Please review the Qlik Sense Online help for the relevant Sense version to find the Service Dependencies for your specific version.
In a Multi-node environment, start the central node first and stop the rim nodes first.
Content:
If PostgreSQL has been unbundled, look for postgresql-x64-X
Delay for up to five seconds before starting the Qlik Sense Repository Service to allow the Dispatcher time to start its microservices.
We are unable to provide a comprehensive start or stop order as rim nodes can have a number of different combinations of services installed. Please skip any services you do not have installed.
Delay for up to five seconds before starting the Qlik Sense Repository Service to allow the Dispatcher time to start its microservices.
If PostgreSQL has been unbundled, look for postgresql-x64-XThis is expected to terminate all services with a dependency on the Repository Database (see Service dependencies) if PostgreSQL is still bundled.
We are unable to provide a comprehensive start or stop order as rim nodes can have a number of different combinations of services installed. Please skip any services you do not have installed.
Get-Service "Qlik*" | Where-Object {($_.Name -like "QlikSense*" -and $_.Name -notlike "QlikSenseRepositoryDatabase") -or ($_.Name -eq "QlikLoggingService")} | Stop-Service -Force Start-Service -Name "Qlik Sense Service Dispatcher" Start-Service -Name "QlikSenseServiceDispatcher" Start-Service "Qlik*"
Open the following location: C:\ProgramData\Qlik\Sense\Log\Repository\Trace
Monitor the folder after starting the Qlik Sense Repository Service (QRS). Files with appended time/date will disappear.
This document is a general guide and is provided as is. Modifications to the process may be necessary depending on your individual database setup.
If you have installed a standalone PostgreSQL database, or if you have used the Qlik PostgreSQL Installer (QPI) to upgrade and decouple your previously bundled database, then you can upgrade PostgreSQL at any time. This means you control maintenance and can immediately react to potential PostgreSQL security concerns by upgrading to a later service release or a later major version.
Content
This document covers the following scenario:
Run a complete backup of Qlik Sense Enterprise on Windows site as described in Backup and restore Qlik Sense Enterprise on Windows.
These steps apply if you are upgrading within a major PostgreSQL release (example: 14.5 to 14.8).
No further steps are required.
If you are moving to a higher major version, an in-place upgrade will not be possible. Instead, we will install the the new version in parallel, then then migrate the old database and eventually uninstall the old version. Our example is written using PostgreSQL 12 to 14.
Upgrading and unbundling the Qlik Sense Repository Database using the Qlik PostgreSQL Installer
How to manually upgrade the bundled Qlik Sense PostgreSQL version to 12.5 version
Changing the Database Superuser Password without Qlik Sense Installed
Talend CIDI Pipeline is showing that the project is duplicated in the reactor when running generateAllPoms command from Maven like below:
mvn org.talend.ci:builder-maven-plugin:8.0.X:generateAllPoms
ERROR] [ERROR] Project 'org.example.odin_migration.job:ClaimMigrationControl:0.1.0' is duplicated in the reactor @
[ERROR] Project 'org.example.odin_migration.job:ClaimMigrationControl:0.1.0' is duplicated in the reactor -> [Help 1]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
Using the latest version (version=lastVersion) to avoid version confusion issue:
mvn org.talend.ci:builder-maven-plugin:8.0.X:generateAllPoms | clean deploy -DitemFilter=(type=process)and(version=lastVersion) (windows : --define “itemFilter=(type=process)and(version=lastVersion)” )
It seems to be a Version Confusion Issue and there are job versioning and maven versioning, which are not compatible with together.
For example
It happens often because of this, as you can easily have
job version 0.1 => maven version 0.1.0
job version 0.2 => maven version 0.1.0 (same)
It would be better to set it for example in the filter of Build>Maven:version=latest then re-generate the poms, it will keep only the latest version of jobs.
If you still need to use all the versions, it is not possible to use only the latest version of jobs.
Please try to do a generateAllPoms from maven with some filters (based on your use case) + build the jobs as you need.
This article documents how to configure a Qlik tenant to send emails using MS365.
An account with an active Office365 license is required for this setup.
First, we configure the MS365 tenant to support the configuration.
Once you have an account set up on the MS365 side, let's go to the Microsoft Tenant settings:
Setting Application permissions to Mail.Send grants the application to use any email address from your organization.
The information in this article is provided as-is and will be used at your discretion. Depending on the tool(s) used, customization(s), and/or other factors, ongoing support on the solution below may not be provided by Qlik Support.
In this article, we walk you through the requirements and process of how to upgrade and unbundle an existing Qlik Sense Repository Database (see supported scenarios) as well as how to install a brand new Repository based on PostgreSQL. We will use the Qlik PostgreSQL Installer (QPI).
For a manual method, see How to manually upgrade the bundled Qlik Sense PostgreSQL version to 12.5 version.
Using the Qlik Postgres Installer not only upgrades PostgreSQL; it also unbundles PostgreSQL from your Qlik Sense Enterprise on Windows install. This allows for direct control of your PostgreSQL instance and facilitates maintenance without a dependency on Qlik Sense. Further Database upgrades can then be performed independently and in accordance with your corporate security policy when needed, as long as you remain within the supported PostgreSQL versions. See How To Upgrade Standalone PostgreSQL.
Index
Video Walkthrough
Video chapters:
The following versions have been tested and verified to work with QPI (1.4.0):
Qlik Sense February 2022 to Qlik Sense November 2023.
If you are on a Qlik Sense version prior to these, upgrade to at least February 2022 before you begin.
Qlik Sense November 2022 and later do not support 9.6, and a warning will be displayed during the upgrade. From Qlik Sense August 2023 a upgrade with a 9.6 database is blocked.
The Qlik PostgreSQL Installer supports installing a new standalone PostgreSQL database with the configurations required for connecting to a Qlik Sense server. This allows setting up a new environment or migrating an existing database to a separate host.
Using the Qlik PostgreSQL Installer on a patched Qlik Sense version can lead to unexpected results. If you have a patch installed, either:
Do not use the standard Qlik Sense folders, such as C:\Program Files\Qlik\Sense\Repository\PostgreSQL\ and C:\Programdata\Qlik\Sense\Repository\PostgreSQL\.
Do not use the standard Qlik Sense folders, such as C:\Program Files\Qlik\Sense\Repository\PostgreSQL\ and C:\Programdata\Qlik\Sense\Repository\PostgreSQL\.
Download the installer here.
Qlik PostgreSQL installer Release Notes
The following versions have been tested and verified to work with QPI (1.4.0):
February 2022 to November 2023.
If you are on any version prior to these, upgrade to at least February 2022 before you begin.
Qlik Sense November 2022 and later do not support 9.6, and a warning will be displayed during the upgrade. From Qlik Sense August 2023 a 9.6 update is blocked.
Uninstall the old Qlik Sense Repository Database service.
This step is required. Failing to remove the old service will lead the upgrade or patching issues.
Failing to reinstall the binaries will lead to errors when executing any number of service configuration scripts.If you do not immediately upgrade:
If the upgrade was unsuccessful and you are missing data in the Qlik Management Console or elsewhere, contact Qlik Support.
Now that your PostgreSQL instance is no longer connected to the Qlik Sense Enterprise on Windows services, all future updates of PostgreSQL are performed independently of Qlik Sense. This allows you to act in accordance with your corporate security policy when needed, as long as you remain within the supported PostgreSQL versions.
Your PostgreSQL database is fully compatible with the official PostgreSQL installers from https://www.enterprisedb.com/downloads/postgres-postgresql-downloads.
See How To Upgrade Standalone PostgreSQL, which documents the upgrade procedure for either a minor version upgrade (example: 14.5 to 14.8) or a major version upgrade (example: 12 to 14). Further information on PostgreSQL upgrades or updates can be obtained from Postgre directly.
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. The video in this article was recorded in a earlier version of QPI, some screens might differ a little bit.
Qlik PostgreSQL installer version 1.3.0 Release Notes
Techspert Talks - Upgrading PostgreSQL Repository Troubleshooting
Backup and Restore Qlik Sense Enterprise documentation
Migrating Like a Boss
Optimizing Performance for Qlik Sense Enterprise
Qlik Sense Enterprise on Windows: How To Upgrade Standalone PostgreSQL
How-to reset forgotten PostgreSQL password in Qlik Sense
How to configure Qlik Sense to use a dedicated PostgreSQL database
Troubleshooting Qlik Sense Upgrades
Qlik Sense patches can be downloaded from the Qlik Download page. Patches are cumulative, and only one patch can be installed at a time.
Example: Patch 4 for Qlik Sense February 2019 will include all fixes from 3, 2, and 1.
Before applying a patch:
Executing a patch installation package will automatically uninstall the previous patch and install the new one. If you need to uninstall a patch manually:
Custom configuration file changes not kept after Qlik Sense upgrade
AWS KMS-Managed Keys (SSE-KMS) should be disabled when "Server-Side Encryption" is disabled in component tS3Put, however, after comparing the generated code lines, KMS is still Enable.
As a result, the job will get an error. Even there is a workaround by explicitly disabling KMS in component setting, though it is hard to find what the job error is as the parameter is hidden.
Steps to reproduce
Fix version of related bug was updated to: 8.0.1-R2025-03
It was a known bug and raised in an internal Issue: QTDI-1133
For more information about tS3Put component setting, please see tS3put
For more information about the server-side encryption information, see Protecting Data Using Server-Side Encryption.
Internal Investigation IDs : QTDI-1133
Connecting to a local GeoAnalytics servers fails with Error: Invalid Key , Error Message Either your key is invalid or it has expired
The message Invalid Key can also be displayed on the map objects when using the GeoAnalytic extensions:
Using internal GeoAnalytics server:
The licenses for GeoAnalytics connector and map extensions must match the license applied to the GeoAnalytics server. If not, please re-license the connector or the server as instructed in the following articles:
Installing Qlik GeoAnalytics server
Installing Qlik GeoAnalytics for Qlik Sense
However, in some circumstances, the license key may not take effect due to no connection to the Internet. Then, manual change needs to be done in the configuration files for GeoAnalytics connector, extensions, or server:
QlikSense server
GeoAnalytics connector: C:\Program Files\Common Files\Qlik\Custom Data\QvIdevioConnector\IdevioGeoAnalyticsConnector.exe.config
Example:
<add key="licenseKey" value="0000000011111111:1654281610406"/>
GeoAnalytics extensions: \\<file shared server>\QlikShare\StaticContent\Extensions\ideviomap\License.js
1. edit License file
Example
define([], function () {return "00000001111111"});
QlikView server
GeoAnalytics connector: C:C:\Program Files\Common Files\QlikTech\Custom Data\QvIdevioConnector\IdevioGeoAnalyticsConnector.exe.config
Example:
<add key="licenseKey" value="0000000011111111:1654281610406"/>
QlikView GeoAnalytics extensions:
C:\ProgramData\QlikTech\QlikViewServer\Extensions\Objects
or
C:\Users\YourAdminName\AppData\Local\QlikTech\QlikView\Extensions\Objects
or
Open the QV QMC - Sytem - QlikView Servers - Folders
Check the System Folder for "Alternate Extensions Path"
1. edit License file
Example
define([], function () {return '00000001111111';});
GeoAnalytics server
C:\ProgramData\Qlik GeoAnalytics Server\server3\config\IdevioLicenses.lef
Please make sure all license information in the above files match. If not, please manually change it accordingly.
Using Qlik GeoAnalytics Server:
Verify the license has been applied to the correct installation path. The extensions are stored in the StaticContent folder within the shared directory. To verify the path of the StaticContent folder, go to QMC > Service Cluster.
Run the license tool (C:\Program Files (x86)\QlikView\GeoAnalyticsLicenseTool) using Custom Installation with the path listed for Static Content root folder with '\extensions\' appended.
Example: \\servername\Share\StaticContent\Extensions
After the license is applied successfully, go back to the app, refresh the page, and verify the map appears as expected.
While updating the qliksenserepository user with any of the Configure-Service.ps1 scripts, you may encounter the following error:
Invoke-Query : Exception calling "Start" with "0" argument(s): "The system cannot find the file specified"
At C:\Program Fi 1es\Qlik\Sense\Mobi1i tyRegistrarService\install\instal1-uti1s\Postgres.psl:56 char :10
+ $ret = Invoke-Query $command
+ Categorylnfo : NotSpecified: (:) [Invoke-Query], MethodlnvocationException
+ FullyQualifiedErrorld : Win32Exception,Invoke-Query
Some Power-shell scripts have not been updated for the new default value of the Database home.
Different versions of Qlik Sense Enterprise for Windows come with their own bundled PostgreSQL version.
Examples: Qlik Sense Enterprise for Windows from May 2021 to May 2023 will install PostgreSQL 12.5, while previous releases used PostgreSQL 9.6 as a default during a new install. Similarly, from Qlik Sense Enterprise on Windows August 2023 onwards, Qlik pre-installs PostgreSQL 14.8 as the default database. For more details on the default, see the System Requirements for your respective version.
When you upgrade from an earlier release you will keep 9.6 or 12.5 and you should not have the issue.
This leads to issues with the following line:
Variation One:
[string]$postgresHome = "$senseInstallPath\Repository\PostgreSQL\9.6",
Variation Two:
[string]$postgresHome = "$senseInstallPath\Repository\PostgreSQL\12.5",
Apply the actions in this solution on all nodes.
Depending on your version of Qlik Sense Enterprise on Windows different corrections will be needed.
This is an example list of .ps1 files needing to be edited in the Qlik Sense Enterprise for Windows August 2023 version:
After deleting the Dynamic Engine, it is important to also delete the Dynamic Engine environment. Simply deleting the Dynamic Engine will not halt token usage. To fully free up the tokens, both the Dynamic Engine and its environment must be removed.