停止CouchBase Lite连续复制
本文关键字:复制 连续 Lite CouchBase 停止 | 更新日期: 2023-09-27 17:54:53
我在CBL复制器上遇到了一个非常奇怪的问题:
全球:public Replication _Push;
public Replication _Pull;
在init中:
_DB = Manager.SharedInstance.GetDatabase(_DBName);
if (_DB == null) throw new Exception("Unable to initialize CB Lite");
_Push = _DB.CreatePushReplication(_DBServerURL);
_Pull = _DB.CreatePullReplication(_DBServerURL);
List<String> Channels = new List<string>();
Channels.Add("TestChannel");
_Push.Channels = Channels;
_Pull.Channels = Channels;
_Push.Start();
_Pull.Start();
_Push.Continuous = true;
_Pull.Continuous = true;
问题是,一开始Replicator以Active状态启动,然后变为空闲状态,但最后变为Stopped状态,it不再返回。
CouchBase文档告诉我:
…另一方面,连续复制将无限期地保持活动状态,观察发生的进一步更改并传输它们. ...
Stopped:在传输完所有文档或发生致命错误后,一次性复制进入此状态。(连续复制永不停止)
所以这真的很奇怪…我正在测试桌面应用....
我也检查了两个LastError对象,但即使在连续复制停止时它们也是空的…
问题解决了,似乎您必须在启动复制器之前将其设置为连续:
_Push.Continuous = true;
_Pull.Continuous = true;
_Push.Start();
_Pull.Start();