Subscriber RTI DDS在同一域上发布数据的两个应用程序。当一个应用程序关闭并重新打开时,它会释放数据。如何解决?
我有两个发布者和订阅者应用程序Subscriber RTI DDS在同一域上发布数据的两个应用程序。当一个应用程序关闭并重新打开时,它会释放数据。如何解决?,subscriber,data-distribution-service,publisher,rti-dds,Subscriber,Data Distribution Service,Publisher,Rti Dds,我有两个发布者和订阅者应用程序 应用程序1->发布->学生(1,ABC),学生(2,EFG)。 之后,我运行第二个应用程序。应用程序在同一域上订阅和发布 App2可订阅App1发布的学生(1,ABC)、学生(2,EFG) 然后我发布了数据。App2->发布->教师(1,AAA),教师(2,BBB) 现在我得到了学生(1,ABC),学生(2,EFG),老师(1,AAA),老师(2,BBB) 来自App2 当我关闭app2并再次打开时,我无法订阅此数据 如何订阅在关闭应用程序之前发布的数据? DD
- 应用程序1->发布->学生(1,ABC),学生(2,EFG)。 之后,我运行第二个应用程序。应用程序在同一域上订阅和发布
- App2可订阅App1发布的学生(1,ABC)、学生(2,EFG) 然后我发布了数据。App2->发布->教师(1,AAA),教师(2,BBB) 现在我得到了学生(1,ABC),学生(2,EFG),老师(1,AAA),老师(2,BBB) 来自App2
- 当我关闭app2并再次打开时,我无法订阅此数据 如何订阅在关闭应用程序之前发布的数据? DDS Spy显示数据仍在同一域中可用
(默认值):更新仅传递给发布时存在的数据读取器VOLATILE
:只要DataWriter存在,更新就可以传递给DataReaderTRANSIENT\u LOCAL
:只要域存在,更新就可以传递给DataReaderTRANSIENT
:即使在域重新启动后,更新仍然可以永久提供给DataReaderPERSISTENT
dispose()
调用,或者数据的生命周期过期,数据也会被删除
从您的简短描述来看,您似乎需要为您的持久性QoS选择TRANSIENT\u LOCAL
策略
有关更多信息,请参见DDS规范中的第2.2.3.4节耐久性,可从网站免费下载