我是Couch的新手,继承了一个中型项目,该项目在大约70个客户端Android手机(所有HTC Desire S)上使用CouchBase Mobile(Developer Preview V2.0),然后与主CouchDB服务器同步
不幸的是,构建系统的人已经不在了,所以我正在寻求社区的帮助。
我的观察结果:
我的假设:
我是如何尝试修复它的:
在客户端的CouchBase“default.ini”文件中,我编辑了以下内容,试图限制客户端调用复制的频率。
尽管如此,我仍然可以看到CouchBase在LogCat中犁走,不断尝试并且无法复制。
有人可以建议我如何开始调试这个,以便更有效地隔离问题吗?指出我正确的方向?...非常感谢。
以下是LogCat的复制错误
09-28 12:48:48.593:I / CouchDB(4468):[info] [< 0.8140.0>]复制"0284a8a927077abfd2b86a2616e07fed"
正在使用:
09-28 12:48:48.593:I / CouchDB(4468):4个工人流程
09-28 12:48:48.593:I / CouchDB(4468):工人批量为500
09-28 12:48:48.593:I / CouchDB(4468):5个HTTP连接
09-28 12:48:48.593:I / CouchDB(4468):连接超时60000毫秒
09-28 12:48:48.593:I / CouchDB(4468):套接字选项为:[{keepalive,true},{nodelay,false}]
09-28 12:48:48.593:I / CouchDB(4468):源启动序列4971
09-28 12:48:49.824:I / CouchDB(4468):[info] [< 0.8140.0>]文档funf_client_to_server_49fd7812-409d-47df-a1cd-888db15a24ae
触发复制0284a8a927077abfd2b86a2616e07fed
09-28 12:48:49.834:I / CouchDB(4468):[info] [< 0.8139.0>]在< 0.8140.0>处开始新的复制0284a8a927077abfd2b86a2616e07fed
。 (funf
- > https://*****@monarca.dk:5984/monarca_funf/
)
09-28 12:48:51.225:E / CouchDB(4468):[错误] [< 0.8140.0>] ChangesReader进程因原因而死亡:{file_corruption,
09-28 12:48:51.225:E / CouchDB(4468):<<“file corruption”>>}
09-28 12:48:51.225:E / CouchDB(4468):[错误] [< 0.8140.0>]复制0284a8a927077abfd2b86a2616e07fed
(funf
- > https://*****@monarca.dk:5984/monarca_funf/
)失败: changes_reader_died
09-28 12:48:51.245:I / CouchDB(4468):[info] [< 0.8149.0>]重试POST请求到https:// * @ monarca.dk:5984 / monarca_funf / _revs_diff由于错误closing_on_request而在0.25秒内完成
09-28 12:48:51.245:I / CouchDB(4468):[info] [< 0.8148.0>]重试POST请求到https:// * @ monarca.dk:5984 / monarca_funf / _revs_diff由于错误closing_on_request而在0.25秒内完成
09-28 12:48:51.476:E / CouchDB(4468):[错误] [< 0.298.0>]复制0284a8a927077abfd2b86a2616e07fed
出错(由文档funf_client_to_server_49fd7812-409d-47df-a1cd-888db15a24ae
触发):changes_reader_died
以下是相关的复制文档。
{ “_id”: “funf_client_to_server_49fd7812-409d-47df-a1cd-888db15a24ae”, “_rev”: “825-082674db3441880a23d6b6aa51be7e3e”, “目标”:“https://开头的 * @ monarca.dk:5984 / monarca_funf “ ”连续“:假, ”源“: ”funf“, ”过滤器“: ”monarcaandroid / deletefilter“, ”_ replication_id“: ”3dfdfca7dfd47d9352c9048497660e4c“, ”_ replication_state“: ”错误“, ”_ replication_state_time“:” 2012 -09-28T12:51:25 + 02:00" }
这里是复制文档引用的“deletefilter”。
"function(doc) {\n return !doc._deleted;\n}"
答案 0 :(得分:0)
因为它是android上的couchbase mobile,我认为这是基于about couchdb 1.1或早期的couchdb 1.2。这可能是在您尝试的设置(max_replication_retry_count,http_connections和connection_timeout)落在couchdb 1.2发行版中之前。这只是猜测。您可能想要1)升级您的couchdb / couchbase版本(如果您找到以后的版本,请让我们都知道),或2)只需要一个计时器任务在后台进行单个复制。
答案 1 :(得分:0)
最好使用_replicator
数据库进行复制。它将免费为您进行复制重试。重新尝试复制之前的延迟呈指数级增长。
答案 2 :(得分:0)
错误日志显示文件损坏&#39 ;;可能是暗示一些沙发数据库腐败。您可能希望查看_replicator数据库是否存在任何损坏。