We are using both the .NET SDK and the QRS REST API. It appears that any API calls we make to the Qlik Sense server leave an open connection on port 5151 which can be seen using netstat. Sometimes each API call leaves several socket connections open which results in hundreds/thousands of ports in the 'Established state'.
This eventually seems to cause a problem with the scheduler service which freezes and doesn't allow you to stop the windows service, it also gradually consumes more and more memory and doesn't then run any of the tasks it should. There doesn't seem to be any information about manually having to close ports on the latest API / SDK version.
Has anyone else had issues with this? Is there anything that can be done or is it a bug? We are relying on the API to provide some of the automation we need.
Hmm, port 5151 is used by the Scheduling Service on a slave node. How are you issuing your requests against QRS? Through the proxy or against the master QRS directly?
When you issue requests over the .NET SDK it should only open a socket connection through the proxy. That socket will close, server-side, automatically after the set timeout period in QMC so it seems your problem is related to the QRS requests.
Can you share any more information on what kind of actions you are performing that seems related to multiple connections being opened? Triggering several reloads at the same time, back-to-back reloads etc etc
It makes sense it was the QRS requests rather than via the SDK that have the issue, we are making the requests via a virtual proxy so that we could make use of header authentication (although all requests seems to be allowed through whether they are authenticated or not).
The majority of API requests are based around setting up a new customer in our environment, creating a new stream, duplicating and publishing an application to their stream and creating the reload tasks for those apps. Its possible each API call was only causing one connection to be open, but it was hard to tell as there were so many open. We are currently trying to set up the same environment in a local virtual machine so we can do some more testing as it caused issues using the API against our production server
We used to have a seperate slave node set up in a multi-node environment but we had issues with that so we reverted back to a single Qlik Sense server in the standard "Master + Slave" mode, would you not expect port 5151 to be used in a single server setup? We assumed that as the one server was performing both actions it would still get used