Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
_CD_
Contributor III
Contributor III

Error "Connect failed after 2 attempts"

Hi all,

I have some interrogation using the Scalability tools 3.2.5 for Qlik Sense.

I success to connect it, can get app structure and test a scenario.

I'm using NTML as ConnectionType.

Now I want to simulate many users but...

So in Worker Settings, I put 20 in ConcurrentUsers.

Then Executing it (a simple test : Just "ChangeSheet" as action).

Looking at the log result, I see that it's ok for the 5 first user, they can open the app and do the action.

But for the following users :

2017-05-23 11:55:43.5167+02:00 1316484354832 SCENARIOERROR 6-6 962726b0-87e9-458d-9f76-adc689e6ef23  06b585a6-df35-4888-a0cc-3a35dcd26d74 ERROR  Connect failed after 2 attempts. Qlik.Engine.Communication.CommunicationErrorException: Connect failed after 2 attempts. ---> System.Exception: LicenseAccessDenied [Fatal]: Access to the app is denied: NoAvailableAccessType\n   à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\n   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\n   à Qlik.Engine.Communication.QlikConnection.<PingAsync>d__66.MoveNext()\n--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---\n   à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\n   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\n   à SDKExerciserService.Driver.Extensions.TaskExtensions.<TimeoutTaskInner>d__4.MoveNext()\n--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---\n   à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\n   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\n   à SDKExerciserService.Driver.Extensions.TaskExtensions.<TimeoutTask>d__3.MoveNext()\n--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---\n   à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\n   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\n   à SDKExerciserService.Driver.Workers.ScenarioItems.ConnectWebSocket.<ExecuteAction>d__8.MoveNext()\n --- Fin de la trace de la pile d'exception interne ---\n   à SDKExerciserService.Driver.Workers.ScenarioItems.ConnectWebSocket.<ExecuteAction>d__8.MoveNext()\n--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---\n   à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\n   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\n   à System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)\n   à SDKExerciserService.Driver.Workers.ScenarioWorker.<Execute>d__7.MoveNext()

If I understand well :

- By using NTLM, each user simulate the UserId lauching the Scalability tools

- This UserID have an UserCal

- There's many UserCal free

- The user have access to this app (The 5 first can connect / open / and execute the scenario)

Did I said some errors ?

Thanks in advanced for your help !

5 Replies
Daniel_Larsson
Employee
Employee

Hi,

As the error message shows, you haven't allocated enough tokens to the user. If you are using a user access allocation,  the user is limited to 5 sessions. You are trying to simulate way more than that. You can read more about access passes here: http://help.qlik.com/en-US/sense/3.2/Subsystems/PlanningQlikSenseDeployments/Content/Server/Server-L...

If you are using NTLM all logins are done by the same user, if you combine this with a token allocated on user access only a total of 5 logins will be successful.

We recommend using header auth for testing purposes since as it will simulate multiple sessions also from proxy perspective.

So combinations which would work for you:

• NTLM + login access

• Header + login access

• Header + user access with tokens allocated all simulated users

_CD_
Contributor III
Contributor III
Author

Hi Thanks for your answer.

I was thinking that it could simulate users. But it will only simulate the user's connection.

My configuration use a User access for all users. So I need to use Header + user access and so created all simulated account before. ok.

I quickly try with Header instead of NTLM but something goes wrong. An Error with "Illegal user id".

Did you know this error ?

Daniel_Larsson
Employee
Employee

Not sure I've seen that exact error. I suppose you configured the header users on a new virtual proxy? In that case, did you make sure to enter virtualproxyprefix in the tool? Also did you use static or dynamic headers? Static adds the domain configured in the virtual proxy while dynamic requires the users to be entered according to the pattern you configured in the virtual proxy.

_CD_
Contributor III
Contributor III
Author

In fact no. I've used the default virtual proxy as I wanted to use NTLM method.

Adding and using this new header don't modify the performance results ? Why not using the default one ?

Daniel_Larsson
Employee
Employee

I was just assuming since it's common practice. An extra virtual proxy won't effect performance. If you use the root one, there shouldn't be added any prefix. The second questions about type of header auth is still valid though.