如何防止连接池在mongodb上使用Java驱动程序关闭?

安德斯·伯纳德(Anders Bernard):

我正在从Java驱动程序2.12.3升级到3.3.0。奇怪的是,收集池似乎突然“起作用”。

我的设置如下:

连接在主线程中建立:

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);

它在数百个线程中使用:

org.bson.Document oldDoc = DBInteractions.readOneFromDb("articles");

使用如下功能:

static synchronized Document readOneFromDb(String col) {
    return database.getCollection(col).find().limit(1).sort(new Document().append("count", 1)).first();
}

对于每个数据库交互,我都会收到这样的警告:

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.

看起来好像只是在一次交互后关闭了连接池。但为什么?很困惑任何人的主意吗?

讽刺的chennupati:

https://api.mongodb.com/java/3.1/com/mongodb/MongoClientOptions.html

查看链接。有几种方法可能会为您提供帮助。查看与连接连接池有关的超时方法


编辑:添加了正确的答案(在下面的评论中)

MongoClientOptions options = new MongoClientOptions.Builder().socketKeepAlive(true).build(); 
MongoClient client = new MongoClient("host", options);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Golang官方驱动程序中的MongoDB连接池

JTDS驱动程序-连接池与连接池

如何使用datastax驱动程序创建Cassandra连接池

在以下特定于MongoDB-MongoClient驱动程序的情况下,连接池如何工作?

mongodb scala驱动程序casbah是否自动管理连接池

多租户MongoDB + mongo-native驱动程序+连接池

如何使用 mongo .net 驱动程序获取客户端上的当前连接池占用率?

Cassandra Datastax驱动程序-连接池

在Payara 5.193.1上找不到适合mysql连接池的驱动程序

无法使用Heroku上的Java驱动程序与MongoDB连接

使用 C++ 驱动程序在 Cassandra 中配置连接池

MongoDB 连接池关闭

如何使用Java JDBC连接池?

我必须在哪里放置Tomcat连接池的JDBC驱动程序?

Apache Ignite JDBC驱动程序-JDBC连接池选项

如何使用Web驱动程序关闭网页上的模式对话框-Java

使用Spark-MongoDB连接器时连接池已关闭

使用jongo的MongoDB中的连接池

使用 MongoDB 本机驱动程序时在退出时关闭 MongoClient 连接?

如何使用Java创建PostgreSQL连接池?

如何使用Java驱动程序为MongoDB构建$ or查询?

如何使用Java MongoDB驱动程序检索字段的子集?

如何使用Java驱动程序查询mongodb

如何在MongoDB Java驱动程序中使用sureIndex

MongoDB:使用Java驱动程序拉

JVM Out.of.Memory 异常上的连接池关闭

mongodb 服务器上的 SSLHandshakeFailed 尝试通过 java 驱动程序连接时

无法使用 Scala 驱动程序连接到 MongoDB Atlas

连接池问题:连接已关闭