1、连接池问题

com.mongodb.DBPortPool$SemaphoresOut  Concurrent requests for database connection have exceeded limit 50

#解决办法
MongoDB默认的连接数一般不会低于50,先通过mongostat查看当前连接数使用情况,再通过db.serverStatus().connections查看数据库的当前和最大连接数,排除服务端问题后,查看应用程序代码端是不是配置的连接池部分少了,这里以java语言为例。

解决com.mongodb.DBPortPool$SemaphoresOut: Out of semaphores to get db connection错误 Mongo reader = null;MongoOptions op = new
MongoOptions();//处理 Out of semaphores to get db
connectionop.setConnectionsPerHost(200);
op.setThreadsAllowedToBlockForConnectionMultiplier(50);
reader = new Mongo(DBConfig.getValue("mongoReadIp")+":27017",op);
reader.slaveOk();


/*
* mongodb数据库链接池
*/
public class MongoDBDaoImpl implements MongoDBDao
{
private MongoClient mongoClient = null;
private static final MongoDBDaoImpl mongoDBDaoImpl = new MongoDBDaoImpl();// 饿汉式单例模式


private MongoDBDaoImpl()
{
if (mongoClient == null)
{
MongoClientOptions.Builder buide = new MongoClientOptions.Builder();
buide.connectionsPerHost(100);// 与目标数据库可以建立的最大链接数
buide.connectTimeout(1000 * 60 * 20);// 与数据库建立链接的超时时间
buide.maxWaitTime(100 * 60 * 5);// 一个线程成功获取到一个可用数据库之前的最大等待时间
buide.threadsAllowedToBlockForConnectionMultiplier(100);
buide.maxConnectionIdleTime(0);
buide.maxConnectionLifeTime(0);
buide.socketTimeout(0);
buide.socketKeepAlive(true);
MongoClientOptions myOptions = buide.build();
try
{
mongoClient = new MongoClient(new ServerAddress("127.0.0.1", 27017), myOptions);
} catch (UnknownHostException e)
{
e.printStackTrace();
}
}
}

 

MongoDB使用过程中的报错处理(持续更新)的更多相关文章

  1. PXE+kickstart网络安装CentOS7.4系统及过程中各种报错

    环境:关闭防火墙.selinux 注意:虚拟机进行网络安装的话,7.3以后的系统是需要2G以上的内存 [root@kickstart ~]# cat /etc/redhat-release CentO ...

  2. 解决 Composer-Setup.exe 安装过程中的报错

    问题 在 Windows 7 执行 Composer-Setup.exe 以安装 Composer 过程中 上图中点击[Next]时,出现如下报错信息 原因分析 由上述提示信息,可推测两方面原因: 1 ...

  3. MySQL使用过程中的报错处理(持续更新)

    一.数据库初始化 1.Percona的MySQL 5.6.20版本数据库初始化 初始化命令(MySQL 5.6版本不适用mysqld命令进行初始化) ./scripts/mysql_install_d ...

  4. kolla制作过程中:neutron-sfc-agent 报错的问题

    在使用二进制方式编译镜像的时候,neutron的sfc-agent提示如下错误ERROR:kolla.image.build:neutron-sfc-agent Failed with status: ...

  5. Jenkins在H5编译加密过程中一个报错

    ################################ 背景:开发环境在编译H5的时候出现了以下报错,记录下 ################################ D:\Jenk ...

  6. SpringBoot入门项目CRM学习过程中的报错记录(更新ing)

    在用mybatis自动生成实体类和mapper时报错..... is unrecognized or represents more than one time zone. You must conf ...

  7. Flume的一些报错问题解决(持续更新中)

    严谨转载--否则追究法律责任 作者----王加鸿                                                   ----------bug 1---------- ...

  8. .net 报错汇总——持续更新

    1.未能找到 CodeDom 提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPla PM> Install-Package Microsoft ...

  9. react+typescript报错集锦<持续更新>

    typescript报错集锦 错误:Import sources within a group must be alphabetized.tslint(ordered-imports) 原因:impo ...

随机推荐

  1. springboot项目没错,但就是报红叉

    1.报错原因: Description Resource Path Location TypeCannot change version of project facet Dynamic Web Mo ...

  2. Ubuntu下dpkg安装软件遇到包依赖问题的处理方法

    造冰箱的大熊猫@cnblogs 2019/9/10 向灵魂工程师致敬! 在Ubuntu环境下通过dpkg命令安装deb包时,如果遇到包依赖问题,如 $sudo dpkg -i xxx.deb (Rea ...

  3. leetcode解题报告(10):Merge Two Sorted Lists

    描述 Merge two sorted linked lists and return it as a new list. > The new list should be made by sp ...

  4. tarjan模板(带注释)

    //dfsn[x]记录x节点有没有被访问过,有,则是第几个 //lowlink[x]记录x能到的祖先中编号最小的 //dfs_clock是个编号累计器 //scc记录一个 inline void df ...

  5. GAN生成式对抗网络(一)——原理

    生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型 GAN包括两个核心模块. 1.生成器模块 --generator 2.判别器模块--de ...

  6. ECMAScript 5.0 基础语法(上)

    银子: 一般来说,一门编程语言的基础语法都是大同小异的.比如,python的基础语法,包括:数据类型,变量,作用域,运算符,流程控制(if...else...语句),循环,编码,数据类型的操作(增删改 ...

  7. aop 通知的执行顺序

    private static final org.slf4j.Logger Logger = LoggerFactory.getLogger(LoggerAop.class); /** * 线程池 异 ...

  8. 查看memcache版本

    window: cmd中用telnet 127.0.0.1 11211这样的命令连接上memcache,然后直接输入stats就可以得到memcache服务器的版本. 注意:memcache的默认端口 ...

  9. vagrant box镜像百度下载地址

    1.centos7 链接:https://pan.baidu.com/s/1JuIUo4HL0lm1EtUKaoMpaA提取码:w9a8 2.vagrant-ubuntu-server-16.04-x ...

  10. Vue于React特性对比(四)

    新开了一个vue的项目,从vue单页面框架搭建到单点登录接入都是自己负责搞的.然后准备将这套东西迁移到react上.然后有了这篇文章. 1,reactjs分环境打包明显要比vue更为麻烦 vue修改的 ...