`
cooliufang
  • 浏览: 130344 次
社区版块
存档分类
最新评论

【mongodb】Out of semaphores to get db connection

阅读更多
利用多线程读取Mongodb时,运行报如下错误:

十一月 19, 2012 1:55:51 下午 com.mongodb.DBApiLayer$Result killCursor
WARNING: can't clean 1 cursor
com.mongodb.DBPortPool$SemaphoresOut: Out of semaphores to get db connection

原因是数据库连接数太少,资源耗尽。

查看com.mongodb.MongoOptions源代码,其中有connectionsPerHost和threadsAllowedToBlockForConnectionMultiplier两个重要的属性。

connectionsPerHost:每个主机的连接数

threadsAllowedToBlockForConnectionMultiplier:线程队列数,它以上面connectionsPerHost值相乘的结果就是线程队列最大值。如果连接线程排满了队列就会抛出“Out of semaphores to get db”错误。

connectionsPerHost默认是10,threadsAllowedToBlockForConnectionMultiplier默认是5,也就是线程池有50个连接数可供使用。因此只要将这个属性的值加大就可以避免上述错误。

其它属性设置:

maxWaitTime:最大等待连接的线程阻塞时间

connectTimeout:连接超时的毫秒。0是默认和无限

socketTimeout:socket超时。0是默认和无限

autoConnectRetry:这个控制是否在一个连接时,系统会自动重试

In my program, modify:

MongoOptions mongoOptions = new MongoOptions();
mongoOptions.autoConnectRetry = true;
mongoOptions.threadsAllowedToBlockForConnectionMultiplier = 5000;
分享到:
评论

相关推荐

    Big.Data.NoSQL.Architecting.MongoDB.epub

    The book covers the necessary features of MongoDB which is needed to get up to speed in knowing about the database. The book covers details on Architecting, Developing and Administering MongoDB. Big ...

    MongoDb db.createUser用户权限

    MongoDB 是一个流行的开源文档型数据库,以其灵活性和高性能而受到许多开发者的青睐。在MongoDB中,管理用户权限是数据库安全的重要环节。`db.createUser` 方法就是用于创建具有特定权限的用户的。以下是对 `db....

    Practical MongoDB(Apress,2015)

    With so many companies opting for MongoDB as their NoSQL database of choice, there's a need for a practical how-to combined with expert advice for getting the most out of the software.

    Mastering MongoDB 3.x

    You will get an overview of MongoDB and how to play to its strengths, with relevant use cases. After that, you will learn how to query MongoDB effectively and make use of indexes as much as possible. ...

    MongoDB connection timeout(解决方案).md

    MongoDB connection timeout(解决方案).md

    Practical MongoDB 无水印破地方 0分

    With so many companies opting for MongoDB as their NoSQL database of choice, there's a need for a practical how-to combined with expert advice for getting the most out of the software. Beginning ...

    MongoDB的JavaScript驱动Narwhal.zip

    var db = new MongoDB.Mongo().getDB("mydb"); var colls = db.getCollectionNames(); colls.forEach(function(el) { print(el); }); var coll = db.getCollection("testCollection"); coll.drop(); var doc = { ...

    Mongodb连接池JAVA

    MongoDB是一种流行的开源文档数据库系统,以其灵活性、可扩展性和高性能而受到开发者的青睐。在Java应用程序中,当处理大量并发请求时,有效地管理数据库连接是至关重要的。这就是MongoDB连接池的作用,它能帮助优化...

    MongoDB The Definitive Guide 2011 中文+英文

    MongoDB: The Definitive Guide by Kristina Chodorow and Michael Dirolf Copyright © 2010 Kristina Chodorow and Michael Dirolf. All rights reserved.

    MongoDB与传统DB的异同

    本文将深入探讨MongoDB与传统DB的异同,并解析它们各自的特点。 首先,从架构层面来看,MongoDB摒弃了关系数据库中的表格结构,采用了一种更加灵活的数据模型。在传统DB中,数据以表格形式存储,每个表格有预定义的...

    MongoDB4.2.21 Linux版本安装包

    8. **安全注意事项**:安装完成后,强烈建议执行`mongo` shell中的`use admin`和`db.runCommand({keyFile:"/path/to/keyfile"})`来启用身份验证,并创建用户账户,以增强安全性。 至此,MongoDB 4.2.21已经在Linux...

    linux安装mongodb教程

    mongodump --host hostIp --db dbname --out c:/filename MongoDB 还原命令: mongorestore --host hostIp --db dbname c:/filename/dbname 通过这 10 个知识点,我们可以完整地安装和配置 MongoDB 在 Linux 系统...

    MongoDB Basics

    MongoDB Basics, from The Definitive Guide to MongoDB, 2E, shows you how a document-oriented database system differs from a relational database, and how to install and get started using it. You'll ...

    mongodb可视化工具

    MongoDB 是一个流行的开源文档型数据库系统,以其灵活性、高性能和可扩展性而备受赞誉。在管理和操作MongoDB时,可视化工具是不可或缺的辅助手段,它们可以帮助用户更直观地查看和管理数据,进行查询、备份、监控等...

    MongoDB8.0.1安装包带安装教程

    MongoDB8.0.1安装包带安装教程,适用于windows系统64位。 1、双机安装 mongodb-windows-x86_64-8.0.1-signed。 2、将 mongosh-2.3.2-win32-x64 压缩包解压后,打开bin文件夹复制“mongosh.ext“和”mongoshcryptv1....

Global site tag (gtag.js) - Google Analytics