<quote who="Tomasz Chmielewski">
I decided to use syncrepl (refreshAndPersist) instead of slurpd to synchronize.
I made simple tests but something doesn't work right for me.
I started a totally empty OpenLDAP slave - it got replicated from the master. Any change made on the master is also replicated fine.
Unfortunately, when the connection between the slave and the master is broken (i.e., master restarted), the slave never reconnects. According to the fine slapd.conf manual, reconnection should be made quite fast:
"If the connection is lost, the consumer will attempt to reconnect at an interval time (specified by interval parameter; 60 seconds by default) until the session is re-established."
I waited for about 12 hours, and it didn't happen. Restarting slave helped, and all pending changes were transferred from the master.
Am I missing a setting or something?
Reading slapd.conf(5) correctly ;-)
"In the refreshAndPersist operation, a synchronization search remains persistent in the provider slapd.
Further updates to the master replica will generate searchResultEntry to the consumer slapd as the search responses to the persistent synchronization search.
If an error occurs during replication, the consumer will attempt to reconnect according to the retry parameter which is a list of the <retry interval> and <# of retries> pairs. For example, retry="60 10 300 3" lets the consumer retry every 60 seconds for the first 10 times and then retry every 300 seconds for the next 3 times before stop retrying.
The + in <# of retries> means indefinite number of retries until success."
Gavin.