Reputation: 3066
I have an RTI DDS application with a reliable reader
and reliable writer
.
Whenever I restart the reader application, the reader reads messages it already received. So in the case the reader received a message to restart the application it is now in a restart loop due to the restart message being read every application restart.
I was under the impression that these messages would be acknowledged and not resent if already received before application restart. Why am I receiving messages I thus have already read on application restart of the reader? Also is there a way to see if the messages are being acknowledged as sent and received?
Upvotes: 1
Views: 367
Reputation: 17373
Since your QoS settings have a TRANSIENT_LOCAL
policy for Durability, you are observing expected behavior. According to this documentation, the effect of using TRANSIENT_LOCAL
is that "RTI Connext will attempt to keep some samples so that they can be delivered to any potential late-joining DDSDataReader." -- as required by the OMG DDS specification. That is exactly what you see happening.
If you do not want that kind of behavior, select the VOLATILE
policy for Durability on your Writer and Reader.
Upvotes: 1