我有一个带有reliable reader
和reliable writer
的RTI DDS应用程序。
每当我重新启动阅读器应用程序时,阅读器都会读取已收到的消息。因此,如果读者收到重新启动应用程序的消息,则由于每次应用程序重新启动时都会读取重新启动消息,因此它现在处于重启循环中。
我的印象是,如果在重新启动应用程序之前已收到这些消息,则会确认这些消息并且不会重新发送。为什么我收到的消息我已经阅读过应用程序重启读卡器?还有一种方法可以查看消息是否被确认为已发送和已接收?
答案 0 :(得分:1)
由于您的QoS设置具有TRANSIENT_LOCAL
持久性策略,因此您正在观察预期行为。根据{{3}},使用TRANSIENT_LOCAL
的效果是“RTI Connext将尝试保留一些样本,以便它们可以传递给任何潜在的后期加入DDSDataReader。” - 根据OMG DDS规范的要求。这正是你所看到的。
如果您不想要这种行为,请在您的Writer和Reader上选择VOLATILE
Durability策略。