DDS可靠的阅读器在应用程序重启时获得相同的消

时间:2017-02-21 17:49:52

标签: messaging publish-subscribe qos data-distribution-service

我有一个带有reliable readerreliable writer的RTI DDS应用程序。

每当我重新启动阅读器应用程序时,阅读器都会读取已收到的消息。因此,如果读者收到重新启动应用程序的消息,则由于每次应用程序重新启动时都会读取重新启动消息,因此它现在处于重启循环中。

我的印象是,如果在重新启动应用程序之前已收到这些消息,则会确认这些消息并且不会重新发送。为什么我收到的消息我已经阅读过应用程序重启读卡器?还有一种方法可以查看消息是否被确认为已发送和已接收?

1 个答案:

答案 0 :(得分:1)

由于您的QoS设置具有TRANSIENT_LOCAL持久性策略,因此您正在观察预期行为。根据{{​​3}},使用TRANSIENT_LOCAL的效果是“RTI Connext将尝试保留一些样本,以便它们可以传递给任何潜在的后期加入DDSDataReader。” - 根据OMG DDS规范的要求。这正是你所看到的。

如果您不想要这种行为,请在您的Writer和Reader上选择VOLATILE Durability策略。