Mongo 打开的连接太多
我试图在Java循环中向MongoDB写入大量数据。我收到基于打开的连接数的错误。
我的理论是,由于MongoDB不是事务性的,因此可以同时打开许多连接。然而,Java代码也能够非常快速地循环,在一段时间后,循环迭代的数量开始超过可用连接的数量,Mongo碰壁了。
我的代码看起来像这样。我已经看到它建议不要做,但然后你只是得到错误更快。m.close()
public static void upsert(){
Mongo m = null;
DB db = null;
try {
m = new Mongo("localhost");
db = m.getDB("sempedia"); } catch (UnknownHostException e1) { e1.printStackTrace(); } catch (MongoException e1) { e1.printStackTrace(); }
// create documents
// I am doing an upsert - hence the doc, doc
DBCollection triples;
try {
triples = db.getCollection("triples");
triples.update(doc,doc,true,false);
} catch (MongoException e) { e.printStackTrace(); }
m.close();
}
在我的Java控制台中,我收到此错误:
警告:使用 0 java.net.Socket 确定 maxBSON 大小的异常:连接重置
mongodb给出了这个错误:
星期二 10 月 25 22:31:39 [初始化和听] 连接被拒绝,因为太多的开放连接: 204 的 204
处理这个问题的最优雅方法是什么?