java mongodb 关闭连接_如何在mongodb上使用java驱动程序保持连接池关闭?
我正在從
java驅(qū)動程序2.12.3升級到3.3.0.奇怪的是,收集池似乎突然“起作用”.
我的設(shè)置如下:
Connection在主線程中建立:
mongoClient = new MongoClient(new MongoClientURI("mongodb://localhost:27017"));
mongoClient.setWriteConcern(new WriteConcern(0, 10)); // deprecated, replace soon
database = mongoClient.getDatabase("Example");
// java.util.logging.Logger.getLogger("org.mongodb.driver").setLevel(Level.SEVERE);
它用于數(shù)百個線??程:
org.bson.Document oldDoc = DBInteractions.readOneFromDb("articles");
使用這樣的函數(shù):
static synchronized Document readOneFromDb(String col) {
return database.getCollection(col).find().limit(1).sort(new Document().append("count", 1)).first();
}
對于每次數(shù)據(jù)庫交互,我都會收到這樣的警告:
Sep 26, 2016 2:33:19 PM com.mongodb.diagnostics.logging.JULLogger log
INFORMATION: Closed connection [connectionId{localValue:42, serverValue:248}] to localhost:27017 because the pool has been closed.
看起來好像連接池僅在一次交互后關(guān)閉.但為什么?很困惑任何一個想法?
https://api.mongodb.com/java/3.1/com/mongodb/MongoClientOptions.html
看看鏈接.有幾種方法可以幫助你.
查看連接和連接池的超時相關(guān)方法.
編輯:添加了正確的答案(它在下面的評論中)
MongoClientOptions options = new MongoClientOptions.Builder().socketKeepAlive(true).build();
MongoClient client = new MongoClient("host", options);
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的java mongodb 关闭连接_如何在mongodb上使用java驱动程序保持连接池关闭?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css -- 两种方法实现流式布局
- 下一篇: css --- 使用媒体查询当屏幕宽度