Hi guys,

I have added a Pinger that check everyy N seconds if the provider is
still present. It uses the same connection than the consumer it checks,
and send a lookup request to the provider, requesting no attributes (1.1).

If the provider is not anymore present, we will get an error, and we
then will disconnect and restart the consumer.

It *should* work well, but we may have some potential race conditions. I
still have to formally determinate if I covered all the cases here, but
so far, it seems to be ok.

Another solution would have been to rely on the socket KEEP_ALIVE, and
when we timeout, we will eventually get a disconnection event. The
problem is that it's frequent on linux box to have a default keep-alive
set to 7200s, so we potentially can't detect the disconnection before 2
hours.

Anyone wanting to review the implementation can check on LdapServer,
ReplicationConsumerImpl and PingerThread classes.

-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com 

Reply via email to