RTI DDS - два приложения, публикующие данные в одном домене.Когда одно приложение закрывается и снова открывается, оно теряет данные.Как решить? - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть два приложения издателя и подписчика.

  • 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 Ответ

0 голосов
/ 15 февраля 2019

Как подписать данные, которые я опубликовал перед закрытием приложения?

Требуемое поведение поддерживается параметром качества обслуживания (QoS).Он указывает, должны ли опубликованные данные оставаться доступными для доставки подписавшимся позднее подписчикам, присоединившимся к домену после публикации данных, и на какой срок.

Существует четыре различных политики, которые можно выбрать для Durability.QoS.В порядке увеличения времени жизни данных это:

  • VOLATILE (по умолчанию): обновления доставляются только тем читателям, которые присутствуют на момент публикации
  • TRANSIENT_LOCAL: обновления остаются доступными для доставки в DataReaders, пока существует DataWriter
  • TRANSIENT: обновления остаются доступными для доставки в DataReaders, пока существует домен
  • PERSISTENT: обновленияостаются навсегда доступными для доставки DataReaders, даже после перезапуска Домена.

Для любой из этих политик данные также удаляются, если используется вызов dispose() или истекает срок его жизни..

Из вашего краткого описания похоже, что вам нужно выбрать политику TRANSIENT_LOCAL для вашего QoS Durability.

Для получения дополнительной информации см. Раздел 2.2.3.4 DURABILITY в спецификации DDS,который можно бесплатно загрузить с веб-страницы OMG DDS .

...