1

Mongo サーバー バージョン 2.0.6 を使用しています。C# ドライバー DLL のバージョンは 1.3.1.4349 です。

私はこの接続文字列を使用しています:

mongodb://abcd:27017,efgh:27017/abcd?connectTimeoutMS=30000;socketTimeoutMS=120000

問題は、フラグsocketTimeoutMSが受け入れられない可能性があることだと思います。1ミリ秒に設定すると、ほとんどのクエリが失敗するはずですよね?

このパラメーターを正しく理解できたと思います。誰が何が起こっているのか説明できますか?

4

1 に答える 1

1

ソケット タイムアウト パラメータは、データの読み取りまたは書き込みを待機しているソケットをタイムアウトにするために使用されます。サーバーが書き込みを受け入れ、1 ミリ秒以内に読み取り用のデータで応答する場合、クエリは失敗しません。また、このような短いタイムアウトが実際に受け入れられるかどうかは、基盤となる OS によって異なります。それはそれをキャップするかもしれません。

関連コード:

読み取り: https://github.com/mongodb/mongo-csharp-driver/blob/8e6850c91893743ebbbd53ebba84d3d4086cdecb/Driver/Internal/MongoConnection.cs#L322-L341

書き込み: https://github.com/mongodb/mongo-csharp-driver/blob/8e6850c91893743ebbbd53ebba84d3d4086cdecb/Driver/Internal/MongoConnection.cs#L374-L382

于 2012-10-25T11:25:16.807 に答える