You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm having an issue with the domain participants belonging to a network where the discovery server is used.
In the network there are:
a discovery server
a domain participant A with two data reader DR1 and DR2
a domain participant B with one data writer DW_B (--> DR2)
a domain participant C with one data writer DW_C (--> DR1)
DW_B sends data continuously to DR2 for a while and then the process holding B stops. DW_C instead send once data to DR1 and it is kept alive. When DR1 receives the message, in its callback you wait 30 seconds (using std::thread::sleep_for function) and then the callback exits. The leaseDuration of each DoimainParticipant is 3s, while the leaseDuration_announcementperiod is 1s. Moreover, A, B, and C are launched from three different executables. The discovery server is launched from the same executable of A.
Now, if the process holding B is stopped while waiting in the callback of DR1, the discovery server removes B and drops A. Then, after the callback of DR1 ends, the discovery server discovers again A.
However, if DR1 and DR2 belongs to two different domain participants (yet launched from the same executable), only B is removed by the discovery server.
Can you explain me why the discovery server drops A when DR1 and DR2 belong to A?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hello,
I'm having an issue with the domain participants belonging to a network where the discovery server is used.
In the network there are:
DW_B sends data continuously to DR2 for a while and then the process holding B stops. DW_C instead send once data to DR1 and it is kept alive. When DR1 receives the message, in its callback you wait 30 seconds (using std::thread::sleep_for function) and then the callback exits. The leaseDuration of each DoimainParticipant is 3s, while the leaseDuration_announcementperiod is 1s. Moreover, A, B, and C are launched from three different executables. The discovery server is launched from the same executable of A.
Now, if the process holding B is stopped while waiting in the callback of DR1, the discovery server removes B and drops A. Then, after the callback of DR1 ends, the discovery server discovers again A.
However, if DR1 and DR2 belongs to two different domain participants (yet launched from the same executable), only B is removed by the discovery server.
Can you explain me why the discovery server drops A when DR1 and DR2 belong to A?
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions