Using QosPolicies to Tune the Reliable Protocol

Reliability is controlled by the QosPolicies in QosPolicies for Reliable Communications. To enable reliable delivery, read the following sections to learn how to change the QoS for the DataWriter and DataReader:

Then see Use Cases to explore example use cases:

QosPolicies for Reliable Communications

QosPolicy

Description

Related Entities1DW = DataWriter, DR = DataReader

Reference

Reliability

To establish reliable communication, this QoS must be set to DDS_RELIABLE_RELIABILITY_QOS for the DataWriter and its DataReaders.

DW, DR

Enabling Reliability, RELIABILITY QosPolicy

ResourceLimits

This QoS determines the amount of resources each side can use to manage instances and DDS samples of instances. Therefore it controls the size of the DataWriter’s send queue and the DataReader’s receive queue. The send queue stores DDS samples until they have been ACKed by all DataReaders. The DataReader’s receive queue stores DDS samples for the user’s application to access.

DW, DR

Tuning Queue Sizes and Other Resource Limits, RESOURCE_LIMITS QosPolicy

History

This QoS affects how a DataWriter/DataReader behaves when its send/receive queue fills up.

DW, DR

Controlling Queue Depth with the History QosPolicy, HISTORY QosPolicy

DataWriterProtocol

This QoS configures DataWriter-specific protocol. The QoS can disable positive ACKs for its DataReaders.

DW

Controlling Heartbeats and Retries with DataWriterProtocol QosPolicy, DATA_WRITER_PROTOCOL QosPolicy (DDS Extension)

DataReaderProtocol

When a reliable DataReader receives a heartbeat from a DataWriter and needs to return an ACKNACK, the DataReader can choose to delay a while. This QoS sets the minimum and maximum delay. It can also disable positive ACKs for the DataReader.

DR

Avoiding Message Storms with DataReaderProtocol QosPolicy, DATA_READER_PROTOCOL QosPolicy (DDS Extension)

DataReaderResourceLimits

This QoS determines additional amounts of resources that the DataReader can use to manage DDS samples (namely, the size of the DataReader’s internal queues, which cache DDS samples until they are ordered for reliability and can be moved to the DataReader’s receive queue for access by the user’s application).

DR

Tuning Queue Sizes and Other Resource Limits,DATA_READER_RESOURCE_LIMITS QosPolicy (DDS Extension)

Durability

This QoS affects whether late-joining DataReaders will receive all previously-sent data or not.

DW, DR

Resending DDS Samples to Late-Joiners with the Durability QosPolicy, DURABILITY QosPolicy

© 2018 RTI