CBL2 resetCheckpoint behaviour

#1

Hi, I just wanted to confirm the behaviour of resetCheckpoint.

Some context: if we’ve tried to push docs from CBL previously and they have been rejected due to lack of permissions, and then those permissions are later granted, we want to attempt to re-push those documents. My understanding is I need to use resetCheckpoint for this before starting replication.

What I’m less sure of is when this reset takes effect. If I call replicator.resetCheckpoint(); replicator.start(), but the replication fails (say network goes down and can’t connect to server), the next time I create a replicator do I also need to call resetCheckpoint before start? Or will the state still be considered reset even though the previous replication failed?

In psuedo-code:

r = new Replicator(config)
r.resetCheckpoint();
r.start();
// replication fails. Network goes down. App gets reset. Phone gets rebooted... 
// Later on...
anotherR = new Replicator(newConfig)
anotherR.start();
// ^--- will this replicator attempt full push, without being proceeded by resetCheckpoint call?

(These replicators are both one-shot replication, rather than continuous.)

Thanks!
David

#2

You need to keep setting the property until a replicator has been able to connect and become active.