2017-08-02 5 views
0

nodejsバージョン0.10.26のPouchDBバージョン5.2.1を使用しています。最近、問題が発生しました.PouchDBの2つの異なるインスタンスからプッシュレプリケーションが正常に動作していたが、プッシュレプリケーションが実行されていないケースがありました。 さらに深くライブラリを掘り下げてみると、ファイルpouchdb/lib/index.jsにあるstartNextBatch()という関数が呼び出されました。我々は成功のシナリオでは条件PouchDBプッシュレプリケーションで新しい文書がプッシュされない

if (returnValue.cancelled || currentBatch) { 
     return; 
    } 

をチェックされている関数の内部currentBatchは未定義だったので、コードが戻らdidntのプッシュが起こったが、失敗のシナリオでcurrentBatchが定義されており、リターンはcalled.The文書でした。 currentBatch変数には、サーバーにプッシュされたが他の問題のために同期できなかった以前の文書があり、それらのチェックポイントも更新できなかったため、currentBatch変数はクリアされませんでした。

私の質問は:

1)私は、コードからのリターンをコメントする場合、それはどのような影響を与えることになります。

2)変数currentBatchが定義されているため、プッシュレプリケーションが停止するのはなぜですか。

答えて

0

さらにデバッグしたところ、レプリケーションが状態コード503で不明なデータベースエラーで完全に停止していることがわかりました。これは、同期ゲートウェイに問題があり、一部のドキュメントに同期バックに時間がかかるために発生しました。チェックポイントを書き込むと、503個の不明なエラーがスローされます(一部のドキュメントが同期されたためにチェックポイントがうまくいかず、時間)。 PouchDBライブラリは複製を完全に打ち切り、その後は何も起こりません。

1)返信にコメントすると、現在のドキュメントがプッシュされますが、複製が中止されるため、保存されたチェックポイントはありません。

2)プッシュレプリケーションは、currentBatchが定義されているため停止しませんでした。レプリケーションが起こっていないため、currentBatchが定義されています。

関連する問題