0

Android タブレットとシステム間のレプリケーションをセットアップしようとしています。オブジェクトを使用CouchDbInstanceしてレプリケーションをセットアップします

これは私のコードです

 /**
     * @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;
    }

ソファのログで、POST on _replicate が 404 を返すのを見る

私たちは使用couchbasemobileしていますが、サポートされていないことを知っています。_replicateレプリケーションの方法がサポートされていないかどうか、およびレプリケーション_replicatorの方法を使用する必要があるかどうかを知ることはできますか?

4

1 に答える 1

0

私はJavaをあまり知らないので、ここで推測していますが、問題は _replicate の使用方法を誤解していると思います。

http://wiki.apache.org/couchdb/Replication人々に_replicatorを使ってほしいと思っているので、もう公式ドキュメントにはありません。

連続レプリケーションを開始するには、_replicate に POST します。

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

応答として、次のものが得られます。

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

レプリケーションのステータスを取得するには、_active_tasks を取得します。それに応じて、アクティブなレプリケーションごとに次の情報が得られます。

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

「_local_id」が _active_tasks にない場合、レプリケーションは行われていません。

あなたの問題はここにあると思います:

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

使用しているライブラリはわかりませんが、これは間違っているようです。_local_id があるかどうかを確認するには、_active_tasks をチェックする必要があります。また、継続的なレプリケーションを自分で実装しているようです。

定期的に GET _active_tasks を実行して連続レプリケーションがまだ進行しているかどうかを確認し、進行していない場合は再開することをお勧めします。ただし、継続的なレプリケーションを引き続き使用する必要があります。

于 2013-08-18T02:05:43.953 に答える