rti dds два приложения публикуют данные в одном домене, когда одно приложение закрывается и повторно открывает его, данные теряются. Как решить?
У меня есть два приложения издателя и подписчика.
- App1 -> Publish -> Student (1,ABC), Student(2,EFG). После этого я запускаю второе приложение. оба приложения подписываются и публикуются в одном домене
- App2 может подписаться на Student (1, ABC), Student (2, EFG), который публикуется App1, а затем публикует данные. App2-> publish -> Teacher(1,AAA),Teacher(2,BBB) Теперь у меня есть Student (1,ABC), Student(2,EFG),Teacher(1,AAA),Teacher(2,BBB) из App2
- Когда я закрываю app2 и открываю снова, я не могу подписать эти данные.Как я могу подписать данные, которые я опубликовал перед закрытием приложения? DDS Spy показывает данные, все еще доступные в том же домене.
Некоторое тело может помочь мне понять.
1 ответ
Как я могу подписаться на данные, которые я опубликовал перед закрытием приложения?
Требуемое поведение поддерживается параметром качества обслуживания (QoS). Он указывает, должны ли опубликованные данные оставаться доступными для доставки подписчикам, присоединившимся позднее, которые присоединились к Домену после публикации, и на какой срок.
Существует четыре различных политики, которые вы можете выбрать для QoS Durability. В порядке увеличения времени жизни данных они:
VOLATILE
(по умолчанию): обновления доставляются только тем читателям, которые присутствуют на момент публикацииTRANSIENT_LOCAL
: Обновления остаются доступными для доставки в DataReaders, пока существует DataWriterTRANSIENT
: Обновления остаются доступными для доставки в DataReaders, пока существует ДоменPERSISTENT
: Обновления остаются навсегда доступными для доставки DataReaders, даже после перезапуска Домена.
Для любой из этих политик данные также удаляются, если dispose()
вызов используется, или если его срок жизни истекает.
Из вашего краткого описания, похоже, вам нужно выбрать TRANSIENT_LOCAL
политика для вашего качества обслуживания QoS.
Для получения дополнительной информации см. Раздел 2.2.3.4 ПРОЧНОСТЬ в спецификации DDS, которую можно бесплатно загрузить с веб-страницы OMG DDS.