Jump to content
OpenSplice DDS Forum
Hans van 't Hag

handling 'invalid data'

Recommended Posts


Description: a ‘feature’ was introduced in the latest spec. revision which is about the assurance to receive state-changes (e.g. when data gets disposed and/or unregistered) even in absence of actual data updates. Is related to the read/take semantics where a ‘take’ basically removes the data from a reader-cache. In the previous spec-revision, in this situation one couldn’t be made aware/triggered about unregister/dispose actions of a writer since basically there was no sample left of which the sampleInfo would reveal the new instance_state. To remedy this, it was decided that upon such instance_state changes, if required, a dummy-sample would be created that has its valid_data flag set to FALSE (see of the OMG-DDS rev1.2 specification). To accommodate users that are not bothered by loosing the ability to see instance-state changes for data that has been ‘taken’ from their readers, we have introduced a new readerQoS policy called ‘reader_data_lifecycle.enable_invalid_samples’ that, when set to FALSE (default is TRUE), prevents these ‘dummy-samples’ from being generated


What people sometimes observe is the 'unanticipated' arrival (and related reader-triggering) of these 'invalid' samples, especially when legacy code is migrated pre OpenSplice 4.3 versions that where compliant with the DDS rev1.0 or rev1.1 specification. To facilitate easy migration of such applications or to make life easier for people/applications that are not interested in lifecycle-changes of publishing appliations (that perform unregister and/or dispose actions), we've introduced a reader QoS policy that prevents these invalid_samples from being generated (and thus observed by applications):


Usability: Migration support from DDS rev1.1 to rev 1.2


a. Feature: Ignore ‘invalid-samples’


b. Summary: a DataReaderQoS policy called “reader_data_lifecycle.enable_invalid_samples” to indicate if invalid-samples are to be generated


c. Defaults: DDS_ReaderDataLifecycleQosPolicy.enable_invalid_samples = TRUE (so to enforce DDS_compliant behavior)





Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now