【发布时间】:2015-03-23 11:18:13
【问题描述】:
我正在使用 MongoDB C# 驱动程序的当前稳定版本。我有一个长期运行的服务,基本上从外部源读取数据并将其全部写入 MongoDB 数据库。
目前,我通过在启动时连接到 MongoDB 来处理这个问题...
void Connect()
{
var client = new MongoClient("(url)");
var server = client.GetServer();
var db = server.GetDatabase("(db-name)");
this.coll = db.GetCollection("(collection-name)");
}
然后每当我得到一些数据时,我都会这样做:
void Insert(object data)
{
this.coll.Save(data);
}
这一切都很好,除了与 MongoDB 的连接失败的奇怪情况。然后我在 Save 调用上出现 IOException。
所以我想为此添加一些弹性,自然的做法是捕获 IOException,尝试重新连接,然后重试 Save。但是,我想知道是否可以利用连接池为我自动处理丢失的连接。如果是这样,我的代码需要什么样的连接池才能工作?
【问题讨论】:
-
提供有关错误的详细信息。还要检查stackoverflow.com/questions/7446528/…
-
这个错误并不是特别相关 - 它失去了与我的数据库机器的连接,这种情况会不时发生。我只是想知道最好的处理方法是什么,以及是否可以使用连接池而不是自己编写重新连接逻辑。
标签: mongodb mongodb-.net-driver