2012-03-07 5 views
5

MongoDBサーバーからオブジェクトを取得する際にMongo C#ドライバから次の例外が発生するのはなぜですか?MongoConnectionを待機するタイムアウト

「MongoConnectionを待機するタイムアウト」

この接続タイムアウトをどこかに設定するか、この問題を解決する方法はありますか?

答えて

4

接続文字列にsocketTimeoutMSを使用すると、タイムアウトを長くすることができます。

例:

mongodb://localhost/myCollection?socketTimeoutMS=60000 
+0

エラーは接続に関するものなので、ここでは 'connectTimeoutMS'引数がより適切です。 'socketTimeoutMS'はデフォルトで無限大ですので、あなたの提案は何も改善されません:http://blog.mongolab.com/2013/10/do-you-want-a-timeout/。 –

1

おそらく、この問題に実行されている:

https://jira.mongodb.org/browse/CSHARP-406

(問題が修正され、修正がC#のドライバの1.4リリースに含まれますすぐに出てくる)。

のMongoDB::// localhost /をmaxpoolsize = 200なお

、あなたの最善のアプローチは、簡単に接続文字列で行われる100のデフォルト値からの接続プールのサイズを大きくすることです

接続プールのサイズを十分に大きくして、スレッドを実行するよりも多くの接続があるようにします(または、接続を同時に必要とするすべてのスレッドを満たすために少なくとも十分な接続)。

+0

オブジェクトグラフに再帰的な参照があったために、再帰的な操作が行われ、サーバーから引き離そうとしたためにクラッシュしました。十分なスタックトレースが見えるように、タイムアウトを増やすことによってスタックトレースを調べなければなりませんでした。上記のプロパティを変更するとタイムアウトが増加しました。私はmaxpoolsizeを覚えています。それは有用になるでしょう。 – iefpw

関連する問題