We have a client application that subscribes to Thomson Reuters RFA News Feed direct. The documentation that we have isn't detailed enough to explain how the event queue works with the settings:
+Maximum queue Depth
We get messages like the one belows from time to time
Max queue depth of '5000' breached. Application will be restarted.
Queue threshold of '4000' breached.
We are trying to ascertain what happens to messages on the queue when events like the above occur. We need to understand what the terms(queue depth, high threshold and low threshold) mean for the Event queue and the impact they have for the client that subscribes to the News Feed.
+Are messages discarded when the High Threshold is reached?
+When the maximum queue depth is breached and the application restarted what happens to the messages on the queue?
Does anyone know of any technical documentation that explains the purpose of these settings and how they are used.
For a full explanation of the Legacy Event Queue management and the various parameter values you refer to above, I recommend you download a v7.6 RFA C++ SDK file from RFA C++ OLDER VERSIONS section of the RFA C++ Download tab
Once you unpack the download please refer to the \Legacy\Docs\RFA_DevelopersGuide-Legacy.pdf - section 184.108.40.206. There you will find a detailed description of Event Queue Threshold/Maximum Depth Configuration.
A brief extract which may help answer one of your questions above:
Behavior When Maximum Queue Depth Reached
To protect the application from exhausting memory, all events, including those for generic messages, are discarded when the event queue maximum depth is reached. If the application wants to retain events, it should not enable the event queue maximum depth functionality.
Any events already enqueued before the event queue maximum depth is reached remain in the queue. To process remaining events, the application can call dispatch as usual.
Events/Messages are not discarded when the high threshold is breached.
In terms of events in the queue when the application is restarted - the event queue is created and initialised by the application and therefore if the application is restarted the queue is destroyed.