Detecting dead subscriber

Dear all,

I wonder how is possible to set the time in which a writer detects that a subscriber is not there anymore (because it crashes or similar).
I set QoS to reliable and in such cases the writer timeouts when it wants to write the data, and the same is with wait for ACKs.
I found out that after a while (couple 10s of second) the writer stops to timeout (probably it detects that the "problematic" subscriber has gone) and continues. I wonder how is possible to tune this "detection of dead subscriber" - so something that like liveliness QoS, but in opposite direction.

Thank you in advance for any hint.
Best Regards
Bogdan

Comments

Response

Hello Bogdan,

The DDS standard does not define a specific mechanism for detecting or updating the liveliness of a Reader. Currently, the writer is able to determine conclusively that the reader is gone only when the reader's DomainParticipant is determined to be gone. This is controlled by the RTPS Participant leaseDuration setting, which is 60 seconds by default.

A more robust capability can be added through a vendor specific extension. We have experimented with code to detect 'unresponsive' readers in CoreDX DDS. The challenge is in deciding the proper course of action once a reader has been determined to be non-responsive. [For example, should the reader be allowed to 'come back to life'?] We are working to define QoS policy parameters that will allow the application to control the middleware's behavior in this situation. We have refrained from making this functionality available in our public API until these parameters have been fully defined.

If you require such functionality for your application, please let me know.

Kind regards,
--clark

Hallo Clark, first thank you

Hallo Clark,

first thank you for the reply.
We are interested in such functionality, because we want to handle cases where one reader/subscriber for some case crashes, or similar.
If you have something implemented we are also willing to test the prototype.

About Participant leaseDuration setting: how is possible to control ? Through QoS ?
There is no liveliness or similar QoS defined on the domain participant level, but just on reader/writer level.

Regards
Bogdan

We are happy to give you a test build

We love to work with people who are interested in testing our prototype builds! I will prepare a build and send you access instructions via e-mail. I need a couple of days to wrap up some other work, but I should have it ready for you before the end of the week.