
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Cannot connect to On-demand app service or cannot create ODAG link
May 28, 2021 6:52:35 AM
Oct 9, 2019 12:38:10 PM
Users trying to create a ODAG link but that fails.
A pop-error might appear on screen:
Whether or not the pop-up appears, ODAG logs and QlikSense Engine Logs confirm the presence of issues.
Environment:
Qlik Sense Enterprise on Windows
Resolution
Issue 1: ODAG request too large
Large ODAG requests and failures of a subsequent cleanup will cause request failures.
Solution
Delete too large requests.
- Connect to the Qlik Sense Repository database (see How To Connect To And Modify The PostgreSQL Database Used For Qlik Sense Repository
- Sort ODAG records with the following command:
SELECT LENGTH("Messages"), "ID", "ModifiedDate", "GeneratedApp_ID" FROM "OdagRequests" ORDER BY LENGTH("Messages") DESC
- Delete specific records:
DELETE FROM "OdagRequests" WHERE "ID" = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
Note: Modification to the Qlik Sense Repository database are done at your own risk. Prior to making changes, backup the database in case of a rollback being necessary. Qlik Support will require the system to be restored to the previous state, should an issue occur after modifications were done.
To avoid the likelihood of this problem from occurring again.
- In On-demand app settings in QMC, change the default settings "Number of days before purging historical data" from 90 to 1.
- The template app script has trace messages, it logs where clause which can be huge because of large number of selections. You can comment that if not needed
// TRACE Generated WHERE clause: ; // TRACE $(WHERE_PART);
Issue 2: ADMIN, INTERNAL\SA_API does not have access
To verify this issue, review the following two log files:
ODAG Logs:
C:\ProgramData\Qlik\Sense\Log\OdagService\201910041805247930200_System.log
349 20191009T181658.752+02:00 QlikServer1.domain.local 3.6.1 PreRequestHandler INFO API-ENTRY [143, ab5eef1b-b002-4216-af4c-847ff6a6559d, DOMAIN\sense2]: POST /v1/links?xrfkey=j6lNXDjW1Mz1wvwZ
350 20191009T181659.042+02:00 QlikServer1.domain.local 3.6.1 EngineRpc INFO API-ID [143]: setupConnection: Opening app 90715185-ccf2-4a3f-8934-efb339fb6b92 in qlikserver1.domain.local:4747
351 20191009T181659.498+02:00 QlikServer1.domain.local 3.6.1 EngineRpc ERROR API-ID [143]: setupConnection: ODAG-ERR-1101: EngineResponseError: EngineRpc.setupConnection: Access denied
352 20191009T181659.499+02:00 QlikServer1.domain.local 3.6.1 EngineRpc ERROR API-ID [143]: getAppScript: ODAG-ERR-1101: EngineResponseError: EngineRpc.getAppScript: EngineRpc.setupConnection: Access denied
353 20191009T181659.499+02:00 QlikServer1.domain.local 3.6.1 EngineRpc ERROR API-ID [143]: getAppScript: ODAG-ERR-1101: EngineResponseError: EngineRpc.getAppScript: EngineRpc.getAppScript: EngineRpc.setupConnection: Access denied
354 20191009T181659.501+02:00 QlikServer1.domain.local 3.6.1 PreRequestHandler INFO API-EXIT [143]: 500
Engine Logs:
C:\ProgramData\Qlik\Sense\Log\Engine\Trace\QLIKSERVER1_System_Engine.txt
6423 20191009T181659.157+0200 WARN QlikServer1 System.Engine.Engine 9 b8848da5-199f-4da4-8536-37eb35110162 DOMAIN\qvservice System: DetermineAccess: Failed to access the following document 90715185-ccf2-4a3f-8934-efb339fb6b92 with the user: 0 INTERNAL sa_api 20191009T181659.158+0200 5088 5784 9e106ca9-ea46-4b3a-a790-a83138e52514 90715185-ccf2-4a3f-8934-efb339fb6b92 20191005T201359.000+0200 b8848da5-199f-4da4-8536-37eb35110162
6424 20191009T181659.330+0200 WARN QlikServer1 System.Engine.Engine 9 73519e8a-b41d-4d30-a232-8675425836c7 DOMAIN\qvservice Document Load: The document 90715185-ccf2-4a3f-8934-efb339fb6b92 failed to load because of no access [5]. 0 INTERNAL sa_api 20191009T181659.331+0200 5088 5784 9e106ca9-ea46-4b3a-a790-a83138e52514 90715185-ccf2-4a3f-8934-efb339fb6b92 20191005T201359.000+0200 73519e8a-b41d-4d30-a232-8675425836c7
Solution
Add ADMIN, INTERNAL\SA_API user as part of section access in the ODAG template App.
Sample script:
Section Access;
LOAD * INLINE [
ACCESS, USERID
ADMIN, INTERNAL\SA_SCHEDULER,
ADMIN, INTERNAL\SA_API,
ADMIN, DOMAIN\sense2
];