Open llddang opened 1 year ago
Note that ownership is on a 'per instance' basis so please make sure that your 2 writers are publishing the same instance (as its perfectly fine if the 'owner' of instance A is different from the 'owner' of instance B. I didn't check the IDL but in case the userID in the data-model would be a key, the observed behavior would be correct.
... looking at the HelloWorld example, its indeed the case that the userID is a key so my assumption was correct and the observed behavior is too .. to check exclusive ownership you should use the same userID for both writers and see if it works as expected this time ;)
Thank you for your quick reply. From the explanation, it seems that my understanding of specification is still unclear. I will clearly understand the contents of the specification and check it through the experiment.
Best regard
I have identified a violated behavior of Eclipse DDS concerning the ownership kind specified in Quality of Service (QoS). According to the specification, when the ownership kind is set to "EXCLUSIVE," only one DataWriter should have access rights to a data-object based on the ownership strength. However, in the current implementation, it allows two DataWriters to access the data-object, which is inconsistent with the expected behavior specified in the QoS.
Expected Behavior:
My domain configuration is like this.
One Participant, Topic, Publisher, Subscriber, DataReader, and two DataWriters.
And qos as below:
dds_qos_t *wqos1 = dds_create_qos(); dds_qset_ownership(wqos1, DDS_OWNERSHIP_EXCLUSIVE); dds_qset_ownership_strength(wqos1, 10);
dds_qos_t *wqos2 = dds_create_qos(); dds_qset_ownership(wqos2, DDS_OWNERSHIP_EXCLUSIVE); dds_qset_ownership_strength(wqos2, 0);
dds_qos_t *rqos = dds_create_qos(); dds_qset_ownership(rqos, DDS_OWNERSHIP_EXCLUSIVE);
Actual Behavior:
Steps to Reproduce:
This is my whole code for reproduce.
Environment: