2013-08-14 3 views
0

안드로이드 타블렛과 시스템간에 복제를 설정하려고합니다. 나는 _replicate에 POST를보고 우리는 couchbasemobile 사용 404_replicate db가 안드로이드의 couchDb에 없습니다.

을 반환이 소파 로그에 내 코드

/** 
    * @param builder 
    * @param couchDbInstance 
    * @return the @Link{ReplicationStatus} for the replication command @Link {ReplicationCommand.Builder} 
    */ 
    private ReplicationStatus replicate(ReplicationCommand.Builder builder, CouchDbInstance couchDbInstance) { 
     int retryCount = 0; 
     ReplicationStatus replicationStatus = null; 
     while (retryCount < REPLICTAION_RETRY_MAX) { 
      replicationStatus = couchDbInstance.replicate(builder.build()); 
      if (replicationStatus.isOk()) { 
       break; 
      } 
      retryCount++; 
     } 
     return replicationStatus; 
    } 

입니다 설정 복제

CouchDbInstance 객체를 사용하고 나는 그것의하지 이상 지원 알고있다. _replicate 복제 방법이 지원되지 않는지 알 수 있습니까? _replicator 복제 방법을 사용해야합니까?

답변

0

저는 많은 자바를 모릅니다. 그래서 여기에서 추측하겠습니다. 그러나 _replicate가 어떻게 사용되는지 오해 한 것 같습니다.

여기에 문서가 설명되어 있습니다. http://wiki.apache.org/couchdb/Replication 사람들이 _replicator를 사용하기를 원한다고 생각하기 때문에 더 이상 공식 문서에 포함되지 않습니다.

가 연속 복제를 시작하려면, 당신은 _replicate에 게시 :

{"source":"example-database","target":"target-db", "continuous": true} 

응답에서, 당신은 얻을 :

{"ok":true,"_local_id":"127c65ee56bcd253d9a019f5a6f84f16+continuous+create_target"} 

복제의 상태를 얻으려면, 당신은 _active_tasks를 가져옵니다. 이에, 각 활성 복제, 당신은 얻을 :은 "_local_id는"_active_tasks에없는 경우

{"ok":true,"_local_id":"127c65ee56bcd253d9a019f5a6f84f16+continuous+create_target"} 

, 복제가 발생하지 않습니다.

replicationStatus = couchDbInstance.replicate(builder.build()); 

난 당신이 사용하고있는 라이브러리를 모른다, 그러나 이것은 잘못된 것 같다

나는 당신의 문제가 여기에 있다고 생각합니다. _local_id가 있는지 보려면 _active_tasks를 확인해야합니다. 또한, 당신은 자신의 지속적인 복제를 구현하는 것 같습니다.

couchbasemobile을 사용하여 연속 복제에 몇 가지 버그가 있음을 발견했습니다. 연속 복제가 계속 진행 중인지 확인하려면 _active_tasks를 주기적으로 얻고 그렇지 않은 경우 다시 시작하는 것이 좋습니다. 그러나 계속 복제를 사용해야합니다.

관련 문제