`

MongoDB连接池耗尽

 
阅读更多

异常日志:

Out of semaphores to get db connection 
查看源代码发现是连接池资源用尽: 

 

查代码看原因:

DBPortPool 写道
if ( ! _waitingSem.tryAcquire() )
throw new SemaphoresOut();

 

_waitingSem初始化代码

 

DBPortPool 写道
_waitingSem = new Semaphore( _options.connectionsPerHost * _options.threadsAllowedToBlockForConnectionMultiplier );

 

 

MongoOptions 写道
public MongoOptions(){
reset();
}

public void reset(){
connectionsPerHost = Bytes.CONNECTIONS_PER_HOST;
threadsAllowedToBlockForConnectionMultiplier = 5;
maxWaitTime = 1000 * 60 * 2;
connectTimeout = 0;
socketTimeout = 0;
socketKeepAlive = false;
autoConnectRetry = false;
maxAutoConnectRetryTime = 0;
slaveOk = false;
safe = false;
w = 0;
wtimeout = 0;
fsync = false;
j = false;
dbDecoderFactory = DefaultDBDecoder.FACTORY;
socketFactory = SocketFactory.getDefault();
}

 

其中:

static final int CONNECTIONS_PER_HOST = Integer.parseInt( System.getProperty( "MONGO.POOLSIZE" , "10" ) );

 

改变连接池大小:

1、可以通过系统属性改变连接池大小。

2、代码层面修改,new Mongo的时,先一个你需要的MongoOptions

分享到:
评论

相关推荐

    Mongodb连接池for java

    在标签中,“MongoDB”是数据库的名字,“Mongo连接池”指的是针对MongoDB数据库的连接池,“连接池”是数据库连接管理的一个通用概念,适用于各种数据库系统。 在压缩包“mongodb_pool”中,可能包含了以下内容: ...

    C++ MongoDB 连接池代码实现

    该代码是C++ MongoDB的连接池代码实现。代码封装了一个连接池类对象,通过该对象提供的连接池来操作MongoDB,提升了性能,减少了数据库连接资源的开销。

    基于hyperf的mongodb连接池组件暂不支持协程

    然而,根据标题“基于hyperf的mongodb连接池组件暂不支持协程”,我们得知Hyperf中的MongoDB连接池组件目前并不支持协程。这个问题涉及到两个关键概念:Hyperf的并发模型和MongoDB的连接池,以及协程在PHP中的应用。...

    Mongodb连接池JAVA

    3. **监控和调整**:定期检查连接池的状态,根据应用负载动态调整连接池大小,防止资源过度消耗或连接耗尽。 4. **异常处理**:处理连接获取失败、超时等异常情况,确保应用的健壮性。 5. **关闭连接池**:在应用...

    mongodb Java连接池

    mongodb Java连接池配置 用于避免Java连接mongodb数据库数过高引起的一系列问题

    Springboot配置MongoDB连接池源代码

    在本文中,我们将深入探讨如何在Spring Boot应用中配置MongoDB连接池,同时也会涉及到Spring Boot与MyBatis以及MySQL数据库的整合。Spring Boot以其简洁的配置和强大的自动化配置功能,已经成为Java开发者构建微服务...

    Mongodb连接池、增删改查实例套装

    - **MongoDB驱动与连接池**:MongoDB的多种编程语言驱动(如Node.js的MongoDB驱动,Python的PyMongo等)都支持连接池,需要正确配置以实现高效的连接管理。 - **连接池配置**:包括最大连接数、最小连接数、超时...

    java实现mongodb的数据库连接池

    在本场景中,我们关注的是如何使用Java实现对MongoDB数据库的连接池,利用mongo-2.7.3.jar包来管理MongoDB的连接。MongoDB是一种NoSQL数据库,它支持JSON格式的数据存储,采用BSON(二进制JSON)作为内部存储格式,...

    java使用mogodb数据库连接池demo

    本示例是关于如何在Java应用中使用MongoDB数据库连接池,确保在高并发环境下数据库操作的稳定性和性能。我们将深入探讨连接池的概念、MongoDB的Java驱动程序以及如何实现安全验证。 首先,连接池是管理数据库连接的...

    Spring Boot中使用MongoDB的连接池配置的方法

    "Spring Boot中使用MongoDB的连接池配置的方法" 在 Spring Boot 项目中,使用 MongoDB 作为数据库时,默认情况下并没有提供连接池配置的功能。这使得开发者需要自行重写 MongoDbFactory,以实现 MongoDB 客户端连接...

    mongo设置连接池

    ### MongoDB中的连接池设置 #### 一、MongoDB连接池概念与原理 在开始之前,我们需要理解MongoDB连接池的基本概念及其运作原理。对于初学者来说,可能由于过往使用关系型数据库的习惯,会自然地联想到数据库连接池...

    mongodb连接工具类

    在实际项目中,为了提高代码的健壮性和可测试性,还可以考虑加入错误处理、连接池管理、线程安全等设计。同时,虽然这个示例没有使用配置文件,但在生产环境中,通常会推荐使用配置文件来存储数据库连接信息,以增加...

    mongoDB连接需要的jar包,支持jdk1.6

    在本场景中,我们讨论的是一个针对JDK 1.6的MongoDB连接所需的jar包集合。 首先,`mongo-java-driver`是官方提供的Java驱动程序,版本为3.2.2。这个驱动程序允许Java应用程序直接与MongoDB服务器通信,执行CRUD...

    koa-mongo, 用于koa的MongoDB中间件,支持连接池.zip

    koa-mongo, 用于koa的MongoDB中间件,支持连接池 koa-mongokoa是一个用于koa@2的mongodb中间件,支持连接池。NB: 如果使用了,则使用 koa-mongo@0.安装npm i koa-mongo --save用法app.use

    python实现连接mongodb并执行相关操作

    python实现连接mongodb并执行相关操作,添加数据,并查询数据

    MongoDB连接工具-32位

    "MongoDB连接工具-32位"正是针对32位操作系统用户而提供的解决方案,因为有些系统由于架构限制无法运行64位软件,例如64位的Robomongo。 Robomongo(现已被官方更名为Studio 3T)是一款功能强大的MongoDB管理工具,...

    Mina+Mongodb+Mybatis+数据库连接池实例

    "Mina+Mongodb+Mybatis+数据库连接池实例" 这个标题表明,我们将讨论一个具体的项目实例,它结合了多种技术,包括Mina(一个用于构建高性能、高可用性的网络应用程序的Java框架)、MongoDB(一个流行的NoSQL数据库...

    mongodb连接第三方工具studio-3t 64位

    mongodb连接第三方工具

    studio-3t mongodb连接工具

    MongoDB Studio 3T是一款强大的MongoDB数据库管理工具,专为简化MongoDB的连接和管理而设计。它提供了直观的图形用户界面(GUI),使得数据库的日常操作变得更加便捷,无论你是开发人员、数据库管理员还是数据分析师...

    Sping boot MongoDB 配置多数据源

    在Spring Boot应用中,MongoDB的多数据源配置是一项关键任务,特别是在大型分布式系统中,可能需要连接到多个数据库以实现数据隔离、读写分离或灾难恢复策略。本篇文章将详细解析如何在Spring Boot中配置MongoDB的多...

Global site tag (gtag.js) - Google Analytics