GitHubContribute in GitHub: Edit online

"App Already Open" Response from Qlik Sense Server

Problem

Qlik Sense application extraction has failed, logging:

java.lang.IllegalArgumentException: An error occurred during parsing response - the object is an error response!
An error occurred while loading data:
Request:
{{"method": "OpenDoc","handle": -1,"params": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"],"outKey": -1,"id": 2}}
Response:
{{"id":2,"jsonrpc":"2.0","error":{"code":1002,"parameter":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","message":"App already open"}}}
Quitting...

Explanation

Qlik Sense servers only allow you to open a Qlik Sense application once using the Qlik Sense JSON API. If the same computer sends another request to open an application that is already open, the server will respond with an error message. This situation hardly ever occurs because two Qlik Sense scenarios rarely extract the same application.

However, there are some cases where two or more scenarios connect to the same Qlik Sense server and the sets of extracted applications have at least one application in common. IBM Manta Data Lineage extracts these applications in parallel (at the same time) and it may happen that these scenarios try, at some point, to access the same application. This is when the extraction fails as the server sends error messages to the scenarios which were not the first to send the application-opening request.

Solution

Luckily, this issue is very simple to fix. To avoid this situation, it is simply necessary to run the extraction sequentially (one after another). Alternatively, you can use the include/exclude mechanism to specify lists of applications extracted in scenarios so that they do not extract the same applications.

To make the extraction sequential, go to cli/scenarios/manta-dataflow-cli/etc/qliksenseExtractorMaster.properties and change the value of the master.threads.maximum to 1.

Important Note that when you change the extraction from parallel to sequential, there may be a notable drop in performance if you are running several scenarios.