QlikView is a product of the software company named Qlik (previously known as QlikTech) which was designed to provide business intelligence & visualization capabilities using reports or dashboards. The QlikView solution is in fact composed of some components just like a Documentum environment (Content Server, WebServer, JMS, aso…). So QlikView is composed of three main components:

  • QlikView Server: the core of the QlikView solution which provide access to the QlikView Documents for the users
  • QlikView Publisher: an entity used to automatically reload and manage more efficiently the QlikView Documents
  • QlikView Desktop: a development tool that can be used to build your reports/dashboards

Based on these descriptions, the only element that is needed on all environments is the QlikView Server. Of course at a certain point of your project, you may also need a QlikView Desktop to build your reports/dashboards but once done, you just don’t really need it anymore. The QlikView Publisher isn’t necessary but it will definitively make your life easier.

I. Considerations

To be more precise, QlikView doesn’t just provide some components but it provides some Services. In fact, each Service is represented by a Windows Service and it can be seen as a specific role with dedicated features. In the QlikView world, an upgrade or a migration is almost the same thing. The main difference is that some elements may change between two main releases of QlikView: the path of a folder, the .NET Framework used, aso… So if you plan to upgrade or migrate your installation (or a part of your installation), then the most important thing to understand is probably that you need to take care of each Service, one Service at a time.
To improve the performance of QlikView, the QlikView Server is designed to mainly use the RAM to store QlikView Documents because the access to the Memory is way more faster than the access to the hard drive. For example, when a user opens a QlikView Document (using a browser) of 1GB (size of the document), then 4GB or RAM are used to store the document in the Memory. Each additional user that will access this QlikView Document will increase this amount by 40% of the document’s size (+ 400 MB of RAM per user). On the other side, the QlikView Publisher is designed to use CPUs for its calculations, aso…
When using QlikView in a small company or with a small number of users, installing all QlikView Services in one Windows Server is often sufficient. A Windows Server with 64, 128 or 256GB or RAM and 16, 32 or 64 CPUs is something quite “normal” for QlikView. However, if your QlikView environment starts to show some weaknesses (jobs failure, locked tasks, QMC not responding, aso…) then it’s probably the time to do something… Because the QlikView Server and Publisher handle the Memory and CPU consumption in a very different way, a best practice is always to separate them but for small companies it may not be necessary.

II. Migration of Services – Theory

Because of this last consideration, in the two remaining parts of this post I will try to explain how to separate the QlikView Services as it is recommended. So what are the Services provided by QlikView?

  • QlikView Server
  • QlikView WebServer (when using the WebServer of QlikView
  • QlikView Settings Service (when using IIS)
  • QlikView Distribution Service
  • QlikView Management Service
  • QlikView Directory Service Connector

You can also have some additional Services according to what have been installed on the QlikView environment like the QlikView Offline Service (offline access via a mobile/tablet) or the QlikView SAP Network Server. The best practice is generally to do the following:

Server 1 – focus on RAM

  • QlikView Server
  • QlikView WebServer

Server 2 – focus on CPU

  • QlikView Management Service
  • QlikView Directory Service Connector
  • QlikView Distribution Service

III. Migration of Services

The general procedure to migrate a QlikView Service from Server 1 to Server 2 is always the same but some steps differs a little bit for a specific Service. Remember that the best thing to do is always to do one service at a time and to check that QlikView is still working properly between each migration. So an overview of this procedure would be:

  1. Installation of the QlikView Service on Server 2
  2. Configuration
  3. Uninstallation of the QlikView Service on Server 1

Installation of the QlikView Service on Server 2

The installation of a Service on a separate server during a migration is a quite simple step:

  1. Stop the QlikView Service on Server 1
  2. Run the QlikView Server installer: QlikViewServer_x64Setup.exe (64 bits Windows Server 2k8) or QlikViewServer_Win2012andUp.exe (64 bits Windows Server 2012)
  3. On the screen to specify what should be installed, always choose the “Custom” proposal and then check which QlikView Service should be installed.
  4. Reboot the Server 2

Configuration

The configuration part is quite simple since there is only one task that should be executed: change a URL. This task is the same for all QlikView Services except one: the QlikView Management Service. For all other QlikView Services, here is what should be done:

  1. Open the QlikView Management Console using a browser. The default URL is something like: http://##Server_1_Hostname##:4780/qmc/SystemSetup.htm
  2. Expand the folder that correspond to the QlikView Service (e.g. “Distribution Services” for the QlikView Distribution Service)
  3. Click on the element inside this folder (e.g. “QDS@##Server_1_Hostname##” for the QlikView Distribution Service)
  4. Click on the “General” tab
  5. Change the URL value replacing ##Server_1_Hostname## with ##Server_2_Hostname##
  6. Click on “Apply” to save your changes

And that should be sufficient for QlikView to know that you installed the QlikView Service on another server.

So as said above, the configuration part is different for the QlikView Management Service. This Service is the one that takes care of the configuration on the QlikView Management Console. That’s why it doesn’t make much sense to change something on the QlikView Management Console that was just installed on another server (the installer knows on which server it was executed)…
So what should be done in case this QlikView Service has been installed on Server 2? Well it’s also quite simple: almost all configurations of QlikView are stored in something they called the “QVPR Database” (QVPR for QlikView Repository). By default this QVPR Database is just a XML Repository but it can also be a SQL Server database. There is a setting on the QlikView Management Console (System > Setup > Management Service > Repository tab) that control if the QVPR Database should be backed-up or not (never, daily, every X minutes…) and there is even a button to “Backup Now” the configuration. The location of these backups if defined in this page too but if you want to open the real location of the XML Repository, you should take a look at “C:/ProgramData/QlikTech/ManagementService/QVPR/”. So the configuration part for the QlikView Management Service consists of:

  1. Stop the QlikView Management Service on Server 2
  2. Copy the QVPR backup from Server 1 to Server 2
  3. Restore the QVPR backup to the Server 2 (replace existing files with the ones from the backup)
  4. Start the QlikView Management Service on Server 2
  5. Check if all configurations are OK

Uninstallation of the QlikView Service on Server 1

The uninstallation step is quite simple too… Everything is simple with QlikView, isn’t it? 😉

  1. Run the QlikView Server installer: QlikViewServer_x64Setup.exe (64 bits Windows Server 2k8) or QlikViewServer_Win2012andUp.exe (64 bits Windows Server 2012)
  2. QlikView will detect that some components are already installed
  3. On the second screen, select “Modify”
  4. On the next screen, click on the QlikView Service and disable it (“This feature will not be available”)
  5. Complete the “installation” process to uninstall the QlikView Service

 

Once the three QlikView Services have been migrated from Server 1 to Server 2, you should be able to see an improvment in the performances or at least less issues with the QlikView Server & Publisher! 😉