11/13/2017
Hi,
I have a question regarding the ownership of the notification retransmisson queue.
Below are two exmaples where the spec says two differnt things:
Version: OPC Unified Architecture Specification Part 4: Services Release 1.03
In 5.13.5.2 Table 93
A list of sequence number ranges that identify unacknowledged NotificationMessages that are available for retransmission from the Subscription’s retransmission queue. This list is prepared after processing the acknowledgements in the request (see 7.5 for Counter definition).
Subscription Service Set 5.13.1.1
i) Sessions maintain a retransmission queue of sent NotificationMessages. NotificationMessages are retained in this queue until they are acknowledged. The Session shall maintain a retransmission queue size of at least two times the number of Publish requests per Session the Server supports. The minimum size of the retransmission queue may be changed by a Profile in Part 7.
Should the retransmission queue be held by the session or subscription?
Is the sequence number unique per session or subscription?
Moderators-Companion
02/24/2014
Logically the sent NotificationMessages belong to a Subscription and the sequence numbers are incremented per Subscription.
But the Publish Request queue is per Session and the size of the sent NotificationMessage queue depends on this size and the whole Publish handling is related to the Session and the Publish Request queue. Therefore the specification defines also the sent NotificationMessage queue as part of the Session.
You can see the combination of the SubscriptionId and the SequenceNumber as the key for finding a NotificationMessage in the sent NotificationMessage queue of the Session.
If you look at the Republish Service, the Service is called on the Session and has the parameters SubscriptionId and SequenceNumber.
11/13/2017
Thanks for your answer, this is how we interpreted it also.
But I think that some clarifications are needed.
"You can see the combination of the SubscriptionId and the SequenceNumber as the key for finding a NotificationMessage in the sent NotificationMessage queue of the Session."
Yes, but the NotificationMessage type only holds the SequenceNumber and not the SubscriptionId. This is confusing when the specification states that the queue belongs to the session.
The wording 'Subscription’s retransmission queue' In 5.13.5.2 Table 93 also feels contradictory for the same reason.
/ Mattias
Moderators-Companion
02/24/2014
The NotificationMessage is used in the Publish Response and in the Republish Response.
In the Publish Response, the SubscriptionId is a parallel parameter to the NotificationMessage.
The Republish is for a specific subscription and the SubscriptionId is a parameter in the Republish Request.
1 Guest(s)