ahaydon / Qlik-Cli-Windows

Qlik-Cli for Windows
https://adamhaydon.uk/Qlik-Cli-Windows/
GNU General Public License v2.0
110 stars 51 forks source link

Qlik-Cli timeout on large apps #56

Closed Sarvjeet-Saini closed 4 years ago

Sarvjeet-Saini commented 6 years ago

Hi team,

We are using Qlik-CLI to call Qlik Apis for automation. But unfortunately, Copy app function is getting timeout error of large apps {~8GB}. We have downloaded the latest version and tested it. Script: Script/CLI Commands :

Connect-Qlik -Computername $qlikSenseProxyHost -UseDefaultCredentials -TrustAllCerts

$app_id = getAppID -AppName "Test APP" -AppOwner "singhs2" $app_id

$start_time = Get-Date Copy-QlikApp -id $app_id -name "Test APP - testcopy2" Write-Output "Time taken : $((Get-Date).Subtract($start_time).Seconds) second(s)" error: Output :

uildVersion : 17.6.4.0 buildDate : 9/20/2013 10:09:00 AM databaseProvider : Devart.Data.PostgreSql nodeType : 1 sharedPersistence : True requiresBootstrap : False singleNodeOnly : False schemaPath : About

Name eq 'Test APP' b0f4121a-e66f-4fd6-8d9a-2aab05cbc093 Invoke-RestMethod : The operation has timed out At C:\Program Files\WindowsPowerShell\Modules\Qlik-Cli\functions\core.ps1:32 char:15

Time taken : 41 second(s)

As you can see it timed out in 41 sec.

This code works fine for smaller apps.
for large apps, API completed copy file but get time out error.

We have also tried setting up timeout in powershell but it didn't help.

Can you please investigate it. It is a showstopper for us. We have discussed this with Qlik support but they are not able to assist as it is CLI issue.

Regards Sarvjeet Saini

analienx commented 6 years ago

Same problem here. Obviously if one uses engine API for duplication it works but engina api with powershell is kind of playing wit clientsocket in PS which is everything but user friendly:)

Sarvjeet-Saini commented 6 years ago

thanks for your reply,

Did you get any work around for this issue ?

Regards, Sarvjeet Saini

From: analienx [mailto:notifications@github.com] Sent: Saturday, 4 August 2018 6:37 AM To: ahaydon/Qlik-Cli Cc: Saini, Sarvjeet; Author Subject: Re: [ahaydon/Qlik-Cli] Qlik-Cli timeout on large apps (#56)

Same problem here. Obviously if one uses engine API for duplication it works but engina api with powershell is kind of playing wit clientsocket in PS which is everything but user friendly:)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/ahaydon/Qlik-Cli/issues/56#issuecomment-410369718, or mute the threadhttps://github.com/notifications/unsubscribe-auth/An06dGuSwZZHU7dc4HXevaRNr9nHfWlPks5uNLSFgaJpZM4Vikth.

"This e-mail and any attachments to it (the "Communication") is, unless otherwise stated, confidential, may contain copyright material and is for the use only of the intended recipient. If you receive the Communication in error, please notify the sender immediately by return e-mail, delete the Communication and the return e-mail, and do not read, copy, retransmit or otherwise deal with it. Any views expressed in the Communication are those of the individual sender only, unless expressly stated to be those of Australia and New Zealand Banking Group Limited ABN 11 005 357 522, or any of its related entities including ANZ Bank New Zealand Limited (together "ANZ"). ANZ does not accept liability in connection with the integrity of or errors in the Communication, computer virus, data corruption, interference or delay arising from or in respect of the Communication."

ghost commented 6 years ago

Hi guys,

I have had the same problem as you have only one difference that the issue started occur from around 300 MB apps but I found solution which seems helped:

1. Update PowerShell to 5.1 version. 2. Navigate to Qlik-Cli module in PowerShell folder. Navigate to "functions" section and select "core" file. Right - mouse click on it. Select "Edit". In opened PowerShell ISE window scroll down to line 29 and 32. Update lines with: "-TimeoutSec 3600" parameter. It should look like: Line 29: $result = Invoke-RestMethod -Method $method -Uri $path @params -SessionVariable webSession -TimeoutSec 3600 Line 32: $result = Invoke-RestMethod -Method $method -Uri $path @params -WebSession $script:webSession -TimeoutSec 3600

I am not sure which of these changes had impact or maybe they both helped me out but maybe it will also resolve and your issues. NOTE "-TimeoutSec 3600" means that timeout will be after 1 hour, you can change to higher value depending on our case.

Good luck!

ahaydon commented 4 years ago

The -TimeoutSec option is now available on the Connect-Qlik command