コレクションの変更ストリームを監視するときに、再開トークンを (resumeAfter で) 指定して、opslog でそのトークンの後の変更を取得できます。このトークンが opslog で見つからない場合 (たとえば、クライアントが長時間切断され、古いトークンを提供している場合) はどうなりますか?
特に、非同期 mongodb Java ドライバーはこの状況をどのように検出しますか?
私にとって、その質問は重要です。なぜなら、接続を失ってすべてのデータを再度プルする必要があるかどうか、または変更ストリームに依存してコレクションからすべての変更を取得できるかどうかを検出する必要があるからです。
ドキュメントには、
oplog に、アプリケーションが受信した最後の操作を見つけるのに十分な履歴がある限り、変更ストリームは再開可能です。
しかし、そうでなければ何が起こるかは指定しません。また、クライアントが opslog で最後のトークンを見つけることができるかどうかを検出する方法を判断するために、ドライバーソースを読むのはかなり難しいと思います。