zoukankan      html  css  js  c++  java
  • MongoDB使用过程中的报错处理(持续更新)

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

     
  • 相关阅读:
    Linux安装oracle 10g常见问题之——ORA-01078,LRM-00109,ORA-01102
    Linux安装oracle 10g常见问题之——OUI-25031
    C#中static静态变量的用法
    让DIV中的内容水平和垂直居中
    json对象与json字符串互换
    AJAX请求 $.post方法的使用
    .NET(c#)new关键字的三种用法
    创建数据库和表的SQL语句
    SQL、LINQ、Lambda 三种用法(转)
    AJAX中UPDATEPANEL配合TIMER控件实现局部无刷新
  • 原文地址:https://www.cnblogs.com/liyingxiao/p/10905793.html
Copyright © 2011-2022 走看看