47.10 DURABILITY SERVICE QosPolicy
This QosPolicy is only used if the 47.9 DURABILITY QosPolicy is PERSISTENT or TRANSIENT and you are using Persistence Service. 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 47.10 DURABILITY SERVICE QosPolicy and must be configured to use those values.
For more information, please see:
- Chapter 21 Mechanisms for Achieving Information Durability and Persistence
- Chapter 74 Introduction to RTI Persistence Service
- Chapter 75 Configuring Persistence Service
This QosPolicy includes the members in Table 47.22 DDS_DurabilityServiceQosPolicy. For default values, please refer to the API Reference HTML documentation.
Type |
Field Name |
Description |
DDS_Duration_t |
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. |
|
DDS_HistoryQosPolicyKind |
Setting to use for the 47.12 HISTORY QosPolicy kind when recouping durable data. |
|
DDS_Long |
Setting to use for the 47.9 DURABILITY QosPolicy writer_depth when recouping durable data. If the 47.12 HISTORY QosPolicy depth is set to a value lower than this value, then the HISTORY depth will be set equal to the value of this field. |
|
DDS_Long |
Settings to use for the 47.22 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:
- The instance has been explicitly disposed
(instance_state = NOT_ALIVE_DISPOSED). -
All samples for the disposed instance have been acknowledged, including the dispose sample itself.
- A time interval longer that DurabilityService QosPolicy’s service_cleanup_delay has elapsed since the time that Connext 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, see 18.1.3 Setting Topic QosPolicies.
47.10.1 Properties
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.
47.10.2 Related QosPolicies
47.10.3 Applicable Entities
47.10.4 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.