posted on Thursday, August 28, 2008 - 03:30 pm
I´d like to know how to set QoS of a topic that must be available for late-joining read applications. Should another entities (like domain, partition, etc) have any special configuration to this purpose?
At least the durability QoS policy must be set to TRANSIENT. This will make sure the service keeps all published data available for late joining DataReaders. If you want the data to even outlive the downtime of the service, use PERSISTENT durability to make sure the published data are stored on permanent storage.
Please also check the setting that is used for the 'autodispose_unregistered_instances' writerDataLifecycle QoS policy of the DataWriter. A very common mistake of users is to use the default value TRUE. When deleting a DataWriter, all its instances are automatically unregistered (see DDS specification). If the autodispose_unregistered_instances is set to TRUE, all these instances are also disposed. In combination with a 'service_cleanup_delay' of '0.0', the data is 'erased' from the service cache when deleting the DataWriter! This means that DataReaders joining after the deletion of the DataWriter will no longer receive the data.