jgr208
jgr208

Reputation: 3066

DDS reliable reader getting same messages on application restart

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

Answers (1)

Reinier Torenbeek
Reinier Torenbeek

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

Related Questions