连接字符串中的'socketTimeoutMS'参数

时间:2012-10-25 10:03:39

标签: mongodb

我使用的是Mongo服务器版本2.0.6 而C#驱动程序DLL版本是:1.3.1.4349

我正在使用此连接字符串:

的mongodb://a.b.c.d:27017,e.f.g.h:27017 / ABCD connectTimeoutMS = 30000; socketTimeoutMS = 120000

问题是我认为标志 socketTimeoutMS 可能不受尊重。 因为如果我把它设置为1ms,那么我的大多数查询都会失败,对吧?

我希望我能正确理解这个参数。 任何人都可以解释可能发生的事情吗?

1 个答案:

答案 0 :(得分:1)

套接字超时参数用于超时等待读取或写入数据的套接字。如果您的服务器接受写入并在1ms内响应读取数据,则查询不会失败。如果实际遵守这样的低超时,它还取决于底层操作系统。它可能限制它。

相关代码:

读取: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