Hi,
I have tried using the setup defined in the figure below. 3 computers are connected to each other over the internet using RTI Routing Service (one instance of Routing Service on each computer).
Samples are published on Publisher node, and stored on Subscriber node. The Persistence Service node is meant as a backup in case the Publisher crashes and a late joiner Subscriber appears.
However if the Persistence Service node is in the system (as in the figure below), the Subscriber receives duplicates of each sample (ie. each sample is received twice). This does not happen on a LAN with the setup on LAN (i.e. when not using Routing Service).
Is there a way to avoid receiving these duplicates of samples?
regards
John
Hi John,
To prevent duplicates you need to configure the RTI Routing Service routes with the setting
publish_with_original_info
set totrue
. Are you already doing this? The default setting if you do not specify anything isfalse
.The
publish_with_original_info
configuration tag is described in sections 2.4.6.1 "Route Types" and 2.7 "Auto Routes" of the RTI Routing Service User's Manual.The
publish_with_original_info
setting tells the Routing Service to preserve the original sample identity as it forwards samples. This is required for the DDS DataReader to realize the samples are duplicates of each other and discard them. Preserving the original sample identity is something the Persistence Service automatically does (because its job is just to store samples and make them available to late joiners unchanged). However the Routing Service does not do this by default (because sometimes it is used as a proxy and may in fact change the contents of the data if it has a transformation specified).Gerardo
The publish_with_original_info option removed all the duplicates when used in the XML for the Routing Service!
Thank you :)
Best regards
John