java - 如何解决 120000 MILLISECONDS 异常错误后 mongodb client Timeout waiting for a pooled item

标签 java multithreading mongodb connection-pooling mongodb-java

我有一个 Java 类(不是 Java Spring 或服务器),它 1)将文件插入一张表, 2)从其他表中读取文件, 3)将文件插入另一个表和 4) 从另一个表中删除文件。

以上 4 个操作都发生在 3 个表上。

我收到以下错误。

Exception in thread "pool-1-thread-240" com.mongodb.MongoTimeoutException: Timeout waiting for a pooled item after 120000 MILLISECONDS
at com.mongodb.ConcurrentPool.get(ConcurrentPool.java:113)
at com.mongodb.PooledConnectionProvider.get(PooledConnectionProvider.java:75)
at com.mongodb.DefaultServer.getConnection(DefaultServer.java:73)
at com.mongodb.BaseCluster$WrappedServer.getConnection(BaseCluster.java:221)
at com.mongodb.DBTCPConnector$MyPort.getConnection(DBTCPConnector.java:508)
at com.mongodb.DBTCPConnector$MyPort.get(DBTCPConnector.java:456)
at com.mongodb.DBTCPConnector.getPrimaryPort(DBTCPConnector.java:414)
at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:176)
at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:159)
at com.mongodb.DBCollection.insert(DBCollection.java:93)
at com.mongodb.DBCollection.insert(DBCollection.java:78)
at com.mongodb.DBCollection.insert(DBCollection.java:120)
at MyProgram$MyClass.run(MyProgram.java:149)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:695)

a) 我该如何解决? 我在 Mac OS 系统中使用 mongod 2.6.3。 b) 我应该增加客户端的 mongodb 池吗? c) 如果是,我应该怎么做? d) 我可以设置的最大数量是多少?

我在我的 java 代码中执行插入操作的那一行遇到了这个问题。

最佳答案

对于单个 MongoDB 实例,默认池连接数为 100,最大池大小为 20。

要解决您的问题,请使用 article考虑中

关于java - 如何解决 120000 MILLISECONDS 异常错误后 mongodb client Timeout waiting for a pooled item,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25374798/

相关文章:

mongodb - 在 Windows 8.1 上安装 Mongodb 的问题

python - 同步 Linux 系统命令和 Python 中的 while 循环

java - 向左旋转数组

java - 在 Spring Boot 应用程序中启用 SSL

java - 更改maven的导出资源目录

c# - 为什么 DateTime.Now 需要线程安全?

c - fork() 之后无法从子进程检索 mmap 共享内存

javascript - 从未调用过 Mongodb 插入回调

mongodb - Elixir Bson 解码器在 utf8 > 16#FF 上失败

java - java中如何在对角线上画一个圆?