Hi Dojo,
I'm wondering if the life cycle of a GQI has a TTL when subscribing to real-time updates, or how we know when it stops updating and gets destroyed. I'm asking because we have a GQI that is allowed to perform real-time updates, and we noticed that at some point, the GQI query is dropped, closing the connection even though the LCA using that ad hoc data source is still open.
Going into more detail, our ad hoc data source enters the OnStartUpdate method and performs updates as expected, but after a while, even if the LCA is still open, the GQI enters the OnStopUpdates state and then gets destroyed. This forces the user to refresh the page for a new "alive" query. I have tested this and found that it doesn't happen at a specific time, it could occur after 10 minutes or even an hour.
Is there any way to determine which action causes the GQI query to enter the OnStopUpdates state?
Thank you!
Note: For simplicity of the explanation below, currently, OnStopUpdates is always called right before OnDestroy. So 'destroyed' here means both OnStopUpdates and OnDestroy will be called.
Within GQI, there are 3 main reasons that a query session with real-time updates can get destroyed:
- The client explicitly closes the session using a CloseSession request
You can see this in the Network tab of the Developer tools from the browser where you opened the LCA.
Additionally, you can see in the GQI metrics when a CloseSession request has been sent.
When using the GQI DxM, the CloseSession request, including the session IDs are also added in the log files. - The session expires because it hasn't received any Heartbeat requests for the last 5 minutes.
The browser periodically notifies the WebAPI that the connection is still active. The WebAPI then in turn sends Heartbeat requests to GQI to keep the query sessions alive.
In the GQI metrics you can see these Heartbeat requests.
When using the GQI DxM, the session ID is also logged when a session expires while also periodically logging how many active sessions are still present. - The GQI process itself is stopped.
If any query sessions are active, this can only occur during upgrades, system restarts or, in case of the GQI DxM, when the GQI service is stopped or restarted.
If a query session is still open in an LCA and there are no interruptions on the DMS itself, it should in theory never be destroyed.
If this would occur for any reason other than the ones described above, you can create a ticket for us and we'll be happy to fix that asap.

Hi Ronald, thank you for the explanation. This helped a lot to understand better the life cycle of GQI with real time updates. Thank you!