You can set a delivery priority for each topic, which is used in case of an update backlog to a session.
Topic delivery priority
is designed to deliver topic updates to each session as quickly as possible. At times,
a backlog of updates to be delivered can develop. Situations where this can occur include:
- a topic is being updated at a high rate
- the Diffusion server or client are heavily loaded
- the client session is recovering from a temporary disconnection
- there is poor network connectivity between the Diffusion server and the client
In many applications, some topics are more time-sensitive than others. Topic delivery priority enables you to specify
which topics should be prioritised if there is a backlog.
Priority is set with the PRIORITY topic property. The possible values are high,
default and low.
The priority affects the order of topic updates sent to a subscribed client session. When there are multiple topic updates for
topics with different priorities in a session's outbound queue, updates for high priority topics will be delivered first,
followed by updates for default priority topics, followed by updates for low priority topics.
Topic subscription and unsubscription notifications are also delivered according to the topic delivery priority.
Consider the following factors when using topic delivery priority:
- If you do not specify a delivery priority, the default priority will apply.
- Delivery priorities will have little effect in conditions of light load, when updates
only remain in the outbound queue for a few milliseconds, so there is a lower chance of topic updates being reordered based on their priority.
- You can reduce the load on your clients by making sure that only the required data is being delivered.
Consider using topic views to reduce the amount of topic updates each client
receives. You can avoid sending updates for parts of the topic tree that are not relevant to the client, or apply a topic view throttling clause
to limit the rate of updates to a client.
- Messages from the server to the client that are not topic updates, for example ping requests and responses, are queued with the default delivery priority.