<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: 'App already open' error in Qlik Sense Engine API in Integration, Extension &amp; APIs</title>
    <link>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/111382#M1528</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;‌Hi,&lt;/P&gt;&lt;P&gt;you should open a new web socket for each dokument. The only way to close the app connection is to close the socket.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Erik Wetterberg&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 05 Jul 2018 15:35:57 GMT</pubDate>
    <dc:creator>ErikWetterberg</dc:creator>
    <dc:date>2018-07-05T15:35:57Z</dc:date>
    <item>
      <title>'App already open' error in Qlik Sense Engine API</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/111381#M1527</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We are trying to fetch Qlik Sense object level information using Engine APIs with Java websockets. We are able to make connection to qlik server and get list of all App ids. But when we try to get sheet level information(thro opendoc and getlayout methods) for all apps fetched, code gets stuck to first app and doesn’t give sheet level information for other apps giving error “App already open”. Looks like we need to disconnect the first app after fetching sheet level information and then move to next app. Issue is that there is no direct way to disconnect an app which is open using Engine APIs. If you have any idea how to resolve this issue then please let us know.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jul 2018 05:54:43 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/111381#M1527</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-07-05T05:54:43Z</dc:date>
    </item>
    <item>
      <title>Re: 'App already open' error in Qlik Sense Engine API</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/111382#M1528</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;‌Hi,&lt;/P&gt;&lt;P&gt;you should open a new web socket for each dokument. The only way to close the app connection is to close the socket.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Erik Wetterberg&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jul 2018 15:35:57 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/111382#M1528</guid>
      <dc:creator>ErikWetterberg</dc:creator>
      <dc:date>2018-07-05T15:35:57Z</dc:date>
    </item>
    <item>
      <title>Re: 'App already open' error in Qlik Sense Engine API</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1605234#M11027</link>
      <description>&lt;P&gt;Your other answer helped me!&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.qlik.com/t5/Qlik-Sense-Integration/Qlik-server-stuck-at-SESSION-ATTACHED-stage/td-p/1418189" target="_blank" rel="noopener"&gt;https://community.qlik.com/t5/Qlik-Sense-Integration/Qlik-server-stuck-at-SESSION-ATTACHED-stage/td-p/1418189&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I did this, and the "App already open" error, stopped&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@Anonymous&amp;nbsp;wrote:&lt;BR /&gt;&lt;P&gt;&lt;SPAN&gt;we realized that we needed to append the Qlik app ID to the Engine API URLs when making our WebSocket connections to get an isolated Qlik Engine session for each Qlik app.&lt;/SPAN&gt;&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Jul 2019 14:31:20 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1605234#M11027</guid>
      <dc:creator>nate_muir_anderson</dc:creator>
      <dc:date>2019-07-23T14:31:20Z</dc:date>
    </item>
    <item>
      <title>Re: 'App already open' error in Qlik Sense Engine API</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1785063#M13890</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I know this is maybe a bit late, but I am running into an additional problem, by opening a new session (websocket) for each app. The Session Limit of Qlik is 5. So after 5 apps I cant proceed with other apps. And as you already know, you cant open multiple apps in one Session ("&lt;SPAN class="lia-message-unread lia-message-unread-windows"&gt;App already open"). So how do you do it?&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="lia-message-unread lia-message-unread-windows"&gt;Thanks and best regards&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="lia-message-unread lia-message-unread-windows"&gt;Julian&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Feb 2021 08:21:15 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1785063#M13890</guid>
      <dc:creator>SaturnV</dc:creator>
      <dc:date>2021-02-23T08:21:15Z</dc:date>
    </item>
    <item>
      <title>Re: 'App already open' error in Qlik Sense Engine API</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1785711#M13903</link>
      <description>&lt;P&gt;The key here is that there is a difference between engine sessions and proxy sessions. It is the proxy sessions that has the&amp;nbsp; 5 session limit, not the engine. So if you reuse the same proxy session between the websocket connections, then you should be able to open multiple apps. Reusing the proxy session is a matter of setting the right cookie I believe. You nee to take the session cookie you get from your first connection an add it to the other connections you make.&lt;/P&gt;</description>
      <pubDate>Wed, 24 Feb 2021 10:32:47 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1785711#M13903</guid>
      <dc:creator>Øystein_Kolsrud</dc:creator>
      <dc:date>2021-02-24T10:32:47Z</dc:date>
    </item>
    <item>
      <title>Re: 'App already open' error in Qlik Sense Engine API</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1785730#M13906</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/41242"&gt;@Øystein_Kolsrud&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;thank you for the answer. I am programming a .exe in C#. So not via the Browser. These are the 2 Responsemessages I receive on connecting to the Engine API:&lt;/P&gt;&lt;P&gt;ResponseMessage 1: {"jsonrpc":"2.0","method":"OnAuthenticationInformation","params":{"userId":"username","userDirectory":"LAB","logoutUri":"&lt;A href="https://ctlab-qsm01.lab.local.lan/testvpjd/qps/user&amp;quot;,&amp;quot;serverNodeId&amp;quot;:&amp;quot;587491ba-a63c-4928-b814-1252ace8e70c&amp;quot;,&amp;quot;mustAuthenticate&amp;quot;:false" target="_blank"&gt;https://ctlab-qsm01.lab.local.lan/testvpjd/qps/user","serverNodeId":"587491ba-a63c-4928-b814-1252ace8e70c","mustAuthenticate":false&lt;/A&gt;}}&lt;/P&gt;&lt;P&gt;ResponseMessage 2: {"jsonrpc":"2.0","method":"OnConnected","params":{"qSessionState":"SESSION_CREATED"}}&lt;/P&gt;&lt;P&gt;So how to add which parameter to the next connection?&lt;BR /&gt;An additional Header with which information?&lt;BR /&gt;Is this even possible withing a non browser application?&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;Julian&lt;/P&gt;</description>
      <pubDate>Wed, 24 Feb 2021 11:13:12 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1785730#M13906</guid>
      <dc:creator>SaturnV</dc:creator>
      <dc:date>2021-02-24T11:13:12Z</dc:date>
    </item>
    <item>
      <title>Re: 'App already open' error in Qlik Sense Engine API</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1785744#M13907</link>
      <description>&lt;P&gt;The session cookie is not passed as part of the websocket communication, but is set up during the handshake that establishes the connection. Are you using the the .NET SDK for your solution? In that case it should be sufficient for you to simply reuse the Location instance as it keeps track of the cookies. So instead of doing this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;foreach (var appId in appIds)
{
    var location = Location.FromUri(url);
    location.AsNtlmUserViaProxy();
    using (var app = location.App(appId))
    {
        DoStuff();
    }
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You should do this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;var location = Location.FromUri(url);
location.AsNtlmUserViaProxy();
foreach (var appId in appIds)
{
    using (var app = location.App(appId))
    {
        DoStuff();
    }
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Feb 2021 11:34:46 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1785744#M13907</guid>
      <dc:creator>Øystein_Kolsrud</dc:creator>
      <dc:date>2021-02-24T11:34:46Z</dc:date>
    </item>
    <item>
      <title>Re: 'App already open' error in Qlik Sense Engine API</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1785765#M13910</link>
      <description>&lt;P&gt;Unfortunately I am not using the .NET SDK. I am unsing the ClientWebsocket class (System.Net.Websockets).&lt;/P&gt;&lt;P&gt;I am using the Methods ClientWebsocket.ConnectAsync(), ClientWebsocket.SendAsync() and ClientWebSocket.ReceiveAsync()&lt;/P&gt;&lt;P&gt;Is there a way to get the cookie anyways? Maybe via the Headers with ClientWebsocket.Options.SetRequestHeader?&lt;/P&gt;</description>
      <pubDate>Wed, 24 Feb 2021 12:37:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1785765#M13910</guid>
      <dc:creator>SaturnV</dc:creator>
      <dc:date>2021-02-24T12:37:42Z</dc:date>
    </item>
    <item>
      <title>Re: 'App already open' error in Qlik Sense Engine API</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1785768#M13911</link>
      <description>&lt;P&gt;I think you need to add the cookie to the cookie jar here:&lt;/P&gt;&lt;P&gt;theSocket.Options.Cookies&lt;/P&gt;&lt;P&gt;I'm not sure if that is sufficient though. Getting all those authentication settings right can be rather tricky when operating at a low level like that. Documentation for the Cookies property can be found here: &lt;A href="https://docs.microsoft.com/en-us/dotnet/api/system.net.websockets.clientwebsocketoptions.cookies?view=net-5.0#System_Net_WebSockets_ClientWebSocketOptions_Cookies" target="_blank" rel="noopener"&gt;https://docs.microsoft.com/en-us/dotnet/api/system.net.websockets.clientwebsocketoptions.cookies?view=net-5.0#System_Net_WebSockets_ClientWebSocketOptions_Cookies&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Feb 2021 12:48:49 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1785768#M13911</guid>
      <dc:creator>Øystein_Kolsrud</dc:creator>
      <dc:date>2021-02-24T12:48:49Z</dc:date>
    </item>
    <item>
      <title>Re: 'App already open' error in Qlik Sense Engine API</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1785769#M13912</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/124250"&gt;@SaturnV&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I guess that could as well work by setting the header "Cookie" in the same way it's done in the enigma.js example below:&lt;/P&gt;&lt;P&gt;&lt;A href="https://support.qlik.com/articles/000077843" target="_blank"&gt;https://support.qlik.com/articles/000077843&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Feb 2021 12:48:08 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1785769#M13912</guid>
      <dc:creator>Damien_V</dc:creator>
      <dc:date>2021-02-24T12:48:08Z</dc:date>
    </item>
    <item>
      <title>Re: 'App already open' error in Qlik Sense Engine API</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1786161#M13921</link>
      <description>&lt;P&gt;I think this is a good idea.&lt;/P&gt;&lt;P&gt;But which cookie do I append? I only have the response you can see 3 posts above.&lt;/P&gt;</description>
      <pubDate>Thu, 25 Feb 2021 12:57:37 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1786161#M13921</guid>
      <dc:creator>SaturnV</dc:creator>
      <dc:date>2021-02-25T12:57:37Z</dc:date>
    </item>
    <item>
      <title>Re: 'App already open' error in Qlik Sense Engine API</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1786456#M13923</link>
      <description>&lt;P&gt;It would depend on how you are doing the handshake. One option is to do an http request to get the cookie then put that cookie in the session container. Here's an example showing such a flow with the .NET SDK:&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/AptkQlik/PublicExamples/tree/master/ConnectServerTicketAttach" target="_blank"&gt;https://github.com/AptkQlik/PublicExamples/tree/master/ConnectServerTicketAttach&lt;/A&gt;&lt;/P&gt;&lt;P&gt;First the session is created and cookie collected here:&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/AptkQlik/PublicExamples/blob/master/ConnectServerTicketAttach/Program.cs#L50" target="_blank"&gt;https://github.com/AptkQlik/PublicExamples/blob/master/ConnectServerTicketAttach/Program.cs#L50&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Then it is fed in as a parameter when configuring the authentication here:&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/AptkQlik/PublicExamples/blob/master/ConnectServerTicketAttach/Program.cs#L63" target="_blank"&gt;https://github.com/AptkQlik/PublicExamples/blob/master/ConnectServerTicketAttach/Program.cs#L63&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 26 Feb 2021 07:31:33 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/App-already-open-error-in-Qlik-Sense-Engine-API/m-p/1786456#M13923</guid>
      <dc:creator>Øystein_Kolsrud</dc:creator>
      <dc:date>2021-02-26T07:31:33Z</dc:date>
    </item>
  </channel>
</rss>

