私は非常に集中的な操作をしていますが、MongoCursor
は数時間ループで実行されています(vb.netアプリケーションではC#ドライバを実行しています。それが、私はどのように私は長いタイムアウトを置かないそのタイムアウトの問題か?これは、理由はカーソルのタイムアウトのものであってもよいかもしれない?私はそれが起こって停止することができます方法はありMongoDB C#Driver 'カーソルが見つかりませんでした。'
Cursor not found
しばらく例外に遭遇?
私は非常に集中的な操作をしていますが、MongoCursor
は数時間ループで実行されています(vb.netアプリケーションではC#ドライバを実行しています。それが、私はどのように私は長いタイムアウトを置かないそのタイムアウトの問題か?これは、理由はカーソルのタイムアウトのものであってもよいかもしれない?私はそれが起こって停止することができます方法はありMongoDB C#Driver 'カーソルが見つかりませんでした。'
Cursor not found
しばらく例外に遭遇?
C#ドライバでカーソルのタイムアウトを無効にすることができます。
cursor.SetFlags(QueryFlags.NoCursorTimeout);
それ以外の場合は、10分間使用しないと閉じます。さらにJohnnyHKの答えを明確に
、これは構文です:
MongoCursor<BsonDocument> cursor = myCollection
.Find(query)
.SetSortOrder(SortBy.Ascending("TrackingNumber"))
.SetFlags(QueryFlags.NoCursorTimeout);
私はMongoDB.Driverバージョン2.4.4とIFindFluent
SetFlags
方法を含まれていませんを使用しています。
最後の要素までカーソルを使い果たしていないと、mongoでメモリリークが発生します。 – Nashenas
バッチサイズを変更することもできます(http://stackoverflow.com/a/24200795/420867 - これはPythonの質問ですが、C#mongoドライバでも可能です) – drevicko