Topic RSS15:57, EEST
February 21, 2014
OfflineHi,
I have a UDP publisher publishing 2 DataSets in 2 different DataSetWriterGroups at different publishingIntervals (1000ms and 2000ms).
The subscriber uses a single DataSetReader/group without preconfigured writer/publisher/.. ids to receive all possible messages on that multicast socket.
When logging the subscriber side, the SDK warns about old sequenceNumbers, comparing the sequenceNumbers from both received DataSetWriters. It is my understanding from the Standard Part 14, 7.2.4.5.4 DataSetMessage header, that the SequenceNumber is related to the DataSet and not to a publisher. Is the SDK sequence number evaluation possibly incorrect here?
INFO MyService – PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=17, publisherId=String:XXXXXX, writerGroupId=2, dataSetWriterIds=[2], dataSetMessageCount=1
INFO MyService – PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=34, publisherId=String:XXXXXX, writerGroupId=1, dataSetWriterIds=[1], dataSetMessageCount=1
INFO MyService – PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=35, publisherId=String:XXXXXX, writerGroupId=1, dataSetWriterIds=[1], dataSetMessageCount=1
WARN com.prosysopc.ua.pubsub.ao – Sequence number (18) indicates that the received message is older than the previous one (35).
INFO MyService – PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=18, publisherId=String:XXXXXX, writerGroupId=2, dataSetWriterIds=[2], dataSetMessageCount=1
INFO MyService – PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=36, publisherId=String:XXXXXX, writerGroupId=1, dataSetWriterIds=[1], dataSetMessageCount=1
INFO MyService – PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=37, publisherId=String:XXXXXX, writerGroupId=1, dataSetWriterIds=[1], dataSetMessageCount=1
WARN com.prosysopc.ua.pubsub.ao – Sequence number (19) indicates that the received message is older than the previous one (37).
INFO MyService – PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=19, publisherId=String:XXXXXX, writerGroupId=2, dataSetWriterIds=[2], dataSetMessageCount=1
INFO MyService – PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=38, publisherId=String:XXXXXX, writerGroupId=1, dataSetWriterIds=[1], dataSetMessageCount=1
WARN com.prosysopc.ua.pubsub.ao – Sequence number (20) indicates that the received message is older than the previous one (38).
INFO MyService – PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=20, publisherId=String:XXXXXX, writerGroupId=2, dataSetWriterIds=[2], dataSetMessageCount=1
INFO MyService – PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=39, publisherId=String:XXXXXX, writerGroupId=1, dataSetWriterIds=[1], dataSetMessageCount=1
INFO MyService – PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=40, publisherId=String:XXXXXX, writerGroupId=1, dataSetWriterIds=[1], dataSetMessageCount=1
INFO MyService – PubSubUdpUadpConnectionNetworkMessageReceivedEvent: seqNo=41, publisherId=String:XXXXXX, writerGroupId=1, dataSetWriterIds=[1], dataSetMessageCount=1
WARN com.prosysopc.ua.pubsub.ao – Sequence number (21) indicates that the received message is older than the previous one (41).
10:25, EEST
Moderators
May 5, 2020
OfflineHi hbrackel,
You seem to be correct. Looking at the code, the DataSetReader implementation currently holds only one lastDataSetSequenceNumber, which is used when producing that warning log. Consequently, if multiple DataSetWriters are received by the same DataSetReader, the implementation does not distinguish the source of the sequence number.
Based on this, the sequence number validation should likely be tracked at least per DataSetWriter, even when the DataSetReader is the same.
I’ll create an issue for this. Thanks for the report.
1 Guest(s)

Log In
Register