This QosPolicy is only used if the DURABILITY QosPolicy is PERSISTENT or TRANSIENT and you are using Persistence Service, which is included with the Connext DDS Professional, Evaluation, and Basic package types. It is used to store and possibly forward the data sent by the DataWriter to DataReaders that are created after the data was initially sent.

This QosPolicy configures certain parameters of Persistence Service when it operates on the behalf of the DataWriter, such as how much data to store. Specifically, this QosPolicy configures the HISTORY and RESOURCE_LIMITS used by the fictitious DataReader and DataWriter used by Persistence Service.

Note however, that by default, Persistence Service will ignore the values in the DURABILITY SERVICE QosPolicy and must be configured to use those values.

For more information, please see:

This QosPolicy includes the members in DDS_DurabilityServiceQosPolicy. For default values, please refer to the API Reference HTML documentation.



Field Name




How long to keep all information regarding an instance.

Can be:

Zero (default): Purge disposed instances from Persistence Service immediately. However, this will only happen if use_durability_service = 1.

INFINITE: Do not purge disposed instances.



Settings to use for the HISTORY QosPolicy when recouping durable data.





Settings to use for the RESOURCE_LIMITS QosPolicy when feeding data to a late joiner.



The service_cleanup_delay in this QosPolicy controls when Persistence Service may remove all information regarding a data-instances. Information on a data-instance is maintained until all of the following conditions are met:

  1. The instance has been explicitly disposed
    (instance_state = NOT_ALIVE_DISPOSED).
  2. All samples for the disposed instance have been acknowledged, including the dispose sample itself.

  3. A time interval longer that DurabilityService QosPolicy’s service_cleanup_delay has elapsed since the time that Connext DDS detected that the previous two conditions were met. (Note: Only values of zero or INFINITE are currently supported for service_cleanup_delay.)

The service_cleanup_delay field is useful in the situation where your application disposes an instance and it crashes before it has a chance to complete additional tasks related to the disposition. Upon restart, your application may ask for initial data to regain its state and the delay introduced by service_cleanup_delay will allow your restarted application to receive the information about the disposed instance and complete any interrupted tasks.

Although you can set the DURABILITY_SERVICE QosPolicy on a Topic, this is only useful as a means to initialize the DURABILITY_SERVICE QosPolicy of a DataWriter. A Topic’s DURABILITY_SERVICE setting does not directly affect the operation of Connext DDS, see Setting Topic QosPolicies.


This QosPolicy cannot be modified after the Entity has been enabled.

It does not apply to DataReaders, so there is no requirement for setting it compatibly on the sending and receiving sides.

Related QosPolicies

Applicable Entities

System Resource Considerations

Since this QosPolicy configures the HISTORY and RESOURCE_LIMITS used by the fictitious DataReader and DataWriter used by Persistence Service, it does have some impact on resource usage.

© 2018 RTI