Why do I get an inconsistent QoS error when recompiling my 4.1e application for 4.2e?
One of the more common reasons is due to the parameter late_joiner_heartbeat_period
(part of DDS_RtpsReliableWriterProtocol_t
, used in the DataWriterProtocolQosPolicy
and DisoveryConfigQosPolicy
) which is new in RTI Data Distribution Service 4.2. late_joiner_heartbeat_period
is used when a reliable reader joins late and needs to catch up on cached samples from a reliable writer more quickly than the normal heartbeat rate.Once the reliable reader has received all cached samples, it will be serviced at the same rate as other reliable readers.
The default valueforlate_joiner_heartbeat_period
is 3 seconds. This period must not be slower (i.e., must be of the same or shorter duration) than the normal heartbeat period (heartbeat_period). By default, the normal heartbeat is also 3 seconds.
Therefore, if you change heartbeat_period, you also need to change late_joiner_heartbeat_period
accordingly:
late_joiner_heartbeat_period must be <= heartbeat_period
Other reasons are detailed in the RTI Data Distribution Service 4.2e Transition Guide which details what to watch out for when moving your RTI Data Distribution Service 4.1e application to RTI Data Distribution Service 4.2e.