`
lingqi1818
  • 浏览: 253348 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

请您先登录,才能继续操作

mongodb客户端错误集合

 
阅读更多
错误一:
调用代码:
String map = "function() { emit(this.offer_price, {count:1});}";

        String reduce = "function(key, values) {";
        reduce = reduce + "var total = 0;";
        reduce = reduce + "for(var i=0;i<values.length;i++){total += values[i].count;}";
        reduce = reduce + "return {count:total};}";

        String result = "resultCollection";
        MapReduceOutput mapReduceOutput = coll.mapReduce(map, reduce.toString(), result, null);
        DBCollection resultColl = mapReduceOutput.getOutputCollection();
        DBCursor cursor = resultColl.find();
        while (cursor.hasNext()) {
            System.out.println(cursor.next());
        }

Exception in thread "main" com.mongodb.MongoException$Network: can't call something : /10.20.141.58:28018/test
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:227)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:305)
at com.mongodb.DB.command(DB.java:160)
at com.mongodb.DB.command(DB.java:183)
at com.mongodb.DB.command(DB.java:144)
at com.mongodb.DBCollection.mapReduce(DBCollection.java:1054)
at com.mongodb.DBCollection.mapReduce(DBCollection.java:1008)
at TestMongodb.main(TestMongodb.java:120)
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
at org.bson.io.Bits.readFully(Bits.java:35)
at org.bson.io.Bits.readFully(Bits.java:28)
at com.mongodb.Response.<init>(Response.java:39)
at com.mongodb.DBPort.go(DBPort.java:128)
at com.mongodb.DBPort.call(DBPort.java:79)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:218)
... 7 more


解决方法:
options.socketTimeout = 2000;


错误2:
Out of semaphores to get db connection
查看源代码发现是连接池资源用尽:
 public DBPort get(){
        DBPort port = null;
        if ( ! _waitingSem.tryAcquire() )
            throw new SemaphoresOut();



但是,我明明是设置过了啊...
 MongoOptions options = m.getMongoOptions();
            options.autoConnectRetry = true;
            options.connectionsPerHost = 500;
            options.maxWaitTime = 5000;
            options.socketTimeout = 0;
            options.connectTimeout = 15000;
            options.threadsAllowedToBlockForConnectionMultiplier = 4;


再仔细看了下初始化顺序,发现semaphore是在mongodb初始化的时候设置的。所以需要这样设置:

MongoOptions options = new MongoOptions();
            options.autoConnectRetry = true;
            options.connectionsPerHost = 1000;
            options.maxWaitTime = 5000;
            options.socketTimeout = 0;
            options.connectTimeout = 15000;
            options.threadsAllowedToBlockForConnectionMultiplier = 5000;
            m = new Mongo(new ServerAddress("10.20.141.22", 28018), options);
分享到:
评论
1 楼 nettm 2012-10-24  
不错,我也遇到了第一个问题

相关推荐

    MongoVUE,MongoDB客户端

    MongoVUE作为MongoDB的客户端,为用户提供了直观且功能丰富的界面,使得数据操作变得更加直观和高效。 MongoVUE的主要特性包括: 1. **连接管理**:MongoVUE允许用户轻松地建立和管理与MongoDB服务器的连接。用户...

    java的mongodb客户端

    在Java中使用MongoDB客户端,首先需要引入MongoDB的Java驱动程序依赖。如果你使用的是Maven,可以在pom.xml文件中添加如下依赖: ```xml &lt;groupId&gt;org.mongodb &lt;artifactId&gt;mongodb-driver-sync &lt;version&gt;4.2.3...

    MongoVUE mongodb连接客户端

    2. 数据浏览:提供清晰的树形视图来展示数据库、集合、文档结构,用户可以方便地查看、编辑和删除数据。 3. 文档编辑:MongoVUE支持实时预览和编辑文档内容,支持JSON格式的输入和验证,避免语法错误。 4. 查询...

    MongoDB c驱动接口和客户端软件

    在这个例子中,我们创建了一个新的MongoDB客户端,连接到本地服务器的默认端口,获取了一个名为"mydb"的数据库中的"mycollection"集合,并插入了一条包含键值对的数据。 以上就是关于MongoDB C驱动接口、客户端软件...

    amoeba.io-mongodb-client:用于 amoeba.io 的 Mongodb 客户端

    而在JavaScript环境中,amoeba.io-mongodb-client是一个专门针对amoeba.io平台设计的MongoDB客户端库,它为开发者提供了与MongoDB交互的强大工具。 amoeba.io-mongodb-client的核心功能在于提供了一个简洁、高效的...

    MongoClient:在NodeJ上运行的MongoDB客户端

    MongoClient是MongoDB官方提供的一款在Node.js环境中用于与MongoDB数据库进行交互的客户端库。MongoDB是一款流行的、基于文档的、非关系型数据库系统,而Node.js则是一种高效的、事件驱动的JavaScript运行环境,特别...

    mongodb分片集群增加acl

    在大数据时代背景下,为了提高数据库的性能和可用性,采用分片技术是一种常见...当然,在实践中还需要注意错误处理、监控和性能调优等其他重要方面,这些知识可以通过继续深入学习MongoDB的官方文档和社区资源来获得。

    mongodb的安装和使用简介

    MongoDB的命令行工具(mongo.exe)是MongoDB客户端的交互式界面,它也是一个JavaScript编译器,允许用户执行各种数据库操作。使用客户端进行基本操作时,用户可以通过它执行查询、插入、更新、删除等命令,也可以...

    mongodb-java-driver源码依赖库

    1. **`com.mongodb.client.MongoClients`**:这是创建MongoDB客户端连接的主要入口点。它提供了一个静态方法`create()`,用于根据提供的连接字符串或其他配置创建`MongoClient`实例。 2. **`...

    mongodb编译文档及编译结果.7z

    - 连接MongoDB:介绍如何初始化MongoDB客户端,设置连接字符串,以及处理连接错误。 - 数据库操作:包括创建、打开数据库,以及执行CRUD(Create, Read, Update, Delete)操作的方法。 - 集合操作:如何创建、查询和...

    mongodb-1.6.0.tgz php扩展

    1. 连接管理:PHP扩展提供了连接MongoDB服务器的方法,允许开发者创建和管理MongoDB客户端实例,以便与数据库进行交互。这些客户端可以是单服务器连接,也可以是复制集或分片集群。 2. 数据库操作:通过扩展,...

    PHP操作MONGODB详细文档 WORD版

    安装完成后,我们可以创建MongoDB客户端对象,这是连接到MongoDB服务器的基础。例如: ```php $mongoClient = new MongoClient("mongodb://localhost:27017"); ``` 接下来,文档会介绍如何选择或创建数据库。在...

    MongoDB之Java使用例子

    最后,确保在完成所有操作后关闭MongoDB客户端: ```java mongoClient.close(); ``` 以上就是Java环境下MongoDB的基本操作,包括CRUD和图像数据的处理。实践中,可能还需要考虑错误处理、连接池管理、性能优化等更...

    kettle插件-MongoDB Delete2.0

    MongoDB Delete 2.0是Kettle插件中的一个组件,专为在Kettle数据集成环境中按特定条件删除MongoDB数据库中的集合数据而设计。Kettle,也被称为Pentaho Data Integration (PDI),是一款强大的ETL(提取、转换、加载)...

    Robo的mongodb的可视化工具

    8. 版本控制:Robo 3T 1.2.1是该工具的一个版本,随着软件的发展,新的版本可能会增加更多功能和改进,如更好的性能、更多的自定义选项以及错误修复等。 总的来说,"Robo的mongodb的可视化工具"是学习和管理MongoDB...

    mongodb,delphi xe3

    MongoDB C驱动是开源的,它提供了基础的客户端功能,如连接到MongoDB服务器、执行查询、插入和更新文档等。开发者可以将其编译为适用于不同平台的库,并在Delphi XE3中使用。 在使用Delphi XE3与MongoDB集成时,...

    mongojs:MongoDB Websockets 客户端

    MongoJS是基于JavaScript的一种轻量级的MongoDB客户端库,专为通过WebSockets与MongoDB数据库进行交互而设计。这个库允许Web应用程序直接在浏览器中执行常见的MongoDB操作,如增、删、改、查,从而实现了客户端与...

    在Asp.net mvc 使用 MongoDB存储数据

    通常,我们会在全局应用程序初始化(如Global.asax.cs)中设置MongoDB客户端: ```csharp using MongoDB.Driver; protected void Application_Start() { // 创建MongoDB客户端实例 var client = new MongoClient...

    JAVA操作MongoDB简单增删改查

    最后,记得在完成所有操作后关闭MongoDB客户端连接: ```java mongoClient.close(); ``` 以上就是使用Java操作MongoDB的基本步骤。在实际项目中,你可能需要处理更复杂的查询和事务,以及错误处理和连接池管理...

    利用C#(winform)实现mongodb的增删改

    **错误处理与性能优化** 在实际应用中,务必处理可能出现的异常,如网络故障、数据库未响应等。同时,对于大量数据的操作,可以考虑批量插入、使用异步方法提高性能,并利用MongoDB的索引功能提升查询速度。 总的来...

Global site tag (gtag.js) - Google Analytics