Compliance to OMG DDS 1.2 Specification
This is a list of the Qualtiy of Service (Qos) Policies defined in the latest OMG DDS specification (1.2 formal/07-01-01).
The default value for the member is listed after the '-'.
The compliance profile that the component is fully implemented in, is listed in double curly brackets {{}}.
Policies that are HINTS means the settings are not enforced. Hint policies are more for letting the system know optimizations then setting strict guidelines.
Status of implementation to OMG DDS 1.2:
- Required component of DCPS that is implemented
- Required component of DCPS that is present but restricted to the default value
- Required component of DCPS that is not present
- Required component of DCPS defined in later version of the specification
- Optional component of DCPS that is implemented
- Optional component of DCPS that is present but restricted to the default value
- Optional component of DCPS that is not present
- Optional component of DCPS defined in later version of the specification
QoS Policies
| QoSPolicy | Component | Values |
|---|---|---|
| USER_DATA (UserDataQosPolicy) | ||
| value | sequence of octects - [empty sequence] | |
| Effect: | Application Data | |
| |
||
| TOPIC_DATA (TopicDataQosPolicy) | ||
| value | sequence of octects - [empty sequence] | |
| Effect: | Application Data | |
| |
||
| GROUP_DATA (GroupDataQosPolicy) | ||
| value | sequence of octects - [empty sequence] | |
| Effect: | Application Data | |
| |
||
| DURABILITY (DurabilityQosPolicy) | ||
| kind | VOLATILE (Default) TRANSIENT_LOCAL TRANSIENT {{Persistence profile}} PERSISTENT {{Persistence profile}} |
|
| service_cleanup_delay (moved to DURABILITY_SERVICE for 1.1 spec) |
Use DURABILITY_SERVICE.service_cleanup_delay | |
| Effect: | Controls whether published data will be retained for new datareaders. VOLATILE - No retention for new readers TRANSIENT_LOCAL - datawriter retains (amount according to other QoS) TRANSIENT - system retains in memory (outlives datawriter) PERSISTENT - retains in permanent storage (outlives session) |
|
| |
||
| DURABILITY_SERVICE (DurabilityServiceQosPolicy) (added in 1.1 spec) {{Persistence profile}} | ||
| service_cleanup_delay | integer - [0] | |
| history_kind | [KEEP_LAST] | |
| history_depth | integer - [1] | |
| max_samples | integer - [LENGTH_UNLIMITED] | |
| max_instances | integer - [LENGTH_UNLIMITED] | |
| max_samples_per_instance | integer - [LENGTH_UNLIMITED] | |
| Effect: | Configuration of QoS for Persitence of previously published data | |
| |
||
| PRESENTATION (PresentationQosPolicy) | ||
| access_scope | INSTANCE (default) TOPIC GROUP {{Object model profile}} |
|
| coherent_access | boolean - [FALSE] | |
| ordered_access | boolean - [FALSE] | |
| Effect: | Grouping and ordering of data. coherent_access - allow grouping of multiple values into single unit ordered_access - subscriber gets values in same order as they were created |
|
| |
||
| DEADLINE (DeadlineQosPolicy) | ||
| period | integer - [infinite] | |
| Effect: | Set a maximum time in which an update must be published. | |
| |
||
| LATENCY_BUDGET (LatencyBudgetQosPolicy) | ||
| duration | integer - [0] | |
| Effect: | This is a HINT. Maximum duration between the data being written and data recevied by subscribing application. |
|
| |
||
| OWNERSHIP (OwnershipQosPolicy) {{Ownership profile}} | ||
| kind | SHARED (default) EXCLUSIVE |
|
| Effect: | Ownership of Instances. (An 'Instance' is a unique key that data is
published for). SHARED - any datawriter can publish for an Instance EXCLUSIVE - only one datawriter can publish for an Instance |
|
| |
||
| OWNERSHIP_STRENGTH (OwnershipStrengthQosPolicy) {{Ownership profile}} | ||
| value | integer - [0] | |
| Effect: | Used to determine who owns the Instance if OWNERSHIP Qos is set to EXCLUSIVE | |
| |
||
| LIVELINESS (LivelinessQosPolicy) | ||
| kind | AUTOMATIC (default) MANUAL_BY_PARTICIPANT MANUAL_BY_TOPIC |
|
| lease_duration | integer - [inifinite] | |
| Effect: | Method used to maintain liveliness status. Length of
time with no liveliness updates means the entity is dead. Decreassing the lease_duration shortens the time to detect the entity has gone away. This is NOT a deadline for publishing Instance values (thats DEADLINE qos). The system has liveliness messages that are sent to maintain liveliness. |
|
| |
||
| TIME_BASED_FILTER (TimeBasedFilterQosPolicy) | ||
| minimum_separation | integer - [0] | |
| Effect: | DataReader is only interested in published data that is minimum_separation apart. | |
| |
||
| PARTITION (PartitionQosPolicy) | ||
| name | sequence of strings - [empty sequence :equiv to sequence of 1 with "" as only element] | |
| Effect: | List of partitions that the enitity will connect with. Allows restricting connections to only those entities with a matching partition. | |
| |
||
| RELIABILITY (ReliabilityQosPolicy) | ||
| kind | RELIABLE BEST_EFFORT (default) |
|
| max_blocking_time | integer - [undefined (1.0 spec) infinite (OpenDDS default) (100ms value defined in 1.1 spec)] |
|
| Effect: | Reliablity of the connection. BEST_EFFORT means values may be dropped or lost. RELIABLE means the values may be resent and the write call may block up to max_blocking_time depending on HISTORY and RESOURCE_LIMITS qos | |
| |
||
| TRANSPORT_PRIORITY (TransportPriorityQosPolicy) | ||
| value | integer - [0] | |
| Effect: | This is a HINT. Suggestion for setting the priority of the transport. |
|
| |
||
| LIFESPAN (LifespanQosPolicy) | ||
| duration | integer - [infinite] | |
| Effect: | Sets the expiration time of a published value. The expiration time is the time published + duration. | |
| |
||
| DESTINATION_ORDER (DestinationOrderQosPolicy) | ||
| kind | BY_RECEPTION_TIMESTAMP (default) BY_SOURCE_TIMESTAMP |
|
| Effect: | How data is ordered on the receiving side. | |
| |
||
| HISTORY (HistoryQosPolicy) | ||
| kind | KEEP_LAST (default) KEEP_ALL |
|
| depth {{Ownership profile}} (applies to KEEP_LAST only) |
integer - [1] | |
| Effect: | Buffering of data values before they are sent. KEEP_ALL tries to not lose any values. KEEP_LAST keeps up to "depth" values. See the OpenDDS Developers Guide for restrictions imposed by other QoS Policies. | |
| |
||
| RESOURCE_LIMITS (ResourceLimitsQosPolicy) | ||
| max_samples | integer - [LENGTH_UNLIMITED] | |
| max_instances | integer - [LENGTH_UNLIMITED] | |
| max_samples_per_instance | integer - [LENGTH_UNLIMITED] | |
| Effect: | Limits amount of resources to be used to meet other QoS. max_samples - maximum number of samples per DataWriter/DataReader max_instances - maximum number of Instances(different key values for the Topic) max_samples_per_instance - maximum number of samples per Instance |
|
| |
||
| ENTITY_FACTORY (EntityFactoryQosPolicy) | ||
| autoenable_created_entities | boolean - [TRUE] | |
| Effect: | Specifies whether an entity will have enable() called when it is created. A value of FALSE requires enable() to be called manually. | |
| |
||
| WRITER_DATA_LIFECYCLE (WriterDataLifecycleQosPolicy) | ||
| autodispose_unregistered_instances | boolean - [TRUE] | |
| Effect: | Indicates whether the system will dispose of an Instance when unregister() is called. See the Specification for details. | |
| |
||
| READER_DATA_LIFECYCLE (ReaderDataLifecycleQosPolicy) | ||
| autopurge_nowriter_samples_delay | integer - [infinite] | |
| autopurge_disposed_samples_delay | integer - [infinite] | |
| Effect: | Delay until automatically removing all samples (even ones not read/taken) for Instances whose state is no writer or disposed. Inifinite means that the samples will never be automatically purged. | |