Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将mongodb与java一起使用时出错_Java_Mongodb - Fatal编程技术网

将mongodb与java一起使用时出错

将mongodb与java一起使用时出错,java,mongodb,Java,Mongodb,我使用MongoDB来存储数据。在我的项目中,我使用线程池将多个用户(100-2000个用户)连接到服务器,并将这些用户的响应存储在数据库中。但是当我这样做的时候,我得到了这个错误。请帮我做这个。我无法得到它。我已经在这个错误上浪费了45个小时 错误: java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) at sun.r

我使用MongoDB来存储数据。在我的项目中,我使用线程池将多个用户(100-2000个用户)连接到服务器,并将这些用户的响应存储在数据库中。但是当我这样做的时候,我得到了这个错误。请帮我做这个。我无法得到它。我已经在这个错误上浪费了45个小时

错误:

java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.avaya.onex.hss.requesthandlers.CommandExecutor.executeCommands(CommandExecutor.java:129)
    at com.avaya.onex.hss.requesthandlers.CommandExecutor.run(CommandExecutor.java:59)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: com.mongodb.DBPortPool$SemaphoresOut: Out of semaphores to get db connection
    at com.mongodb.DBPortPool.get(DBPortPool.java:176)
    at com.mongodb.DBTCPConnector$MyPort.get(DBTCPConnector.java:370)
    at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:149)
    at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:138)
    at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:261)
    at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:211)
    at com.mongodb.DBCollection.insert(DBCollection.java:57)
    at com.mongodb.DBCollection.insert(DBCollection.java:102)
    at com.avaya.onex.hss.objects.LoginRequest.storeData(LoginRequest.java:152)
    at com.avaya.onex.hss.requesthandlers.LoginHandler.handleRequest(LoginHandler.java:20)
    ... 8 more
com.mongodb.DBPortPool$SemaphoresOut: Out of semaphores to get db connection
    at com.mongodb.DBPortPool.get(DBPortPool.java:176)
    at com.mongodb.DBTCPConnector$MyPort.get(DBTCPConnector.java:370)
    at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:212)
    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.drop(DBCollection.java:777)
    at com.mongodb.DBApiLayer$MyCollection.drop(DBApiLayer.java:206)
    at com.avaya.onex.hss.requesthandlers.CommandExecutor.executeCommands(CommandExecutor.java:118)
    at com.avaya.onex.hss.requesthandlers.CommandExecutor.run(CommandExecutor.java:59)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

尝试增加连接池中的连接数


请看connectionsPerHost。

您检查过MongoDB源代码了吗,特别是针对
DBPortPool
类的源代码了吗?我只有该类的jar文件。。其中存在DBPortPool类。。。如何阅读java源代码..您可以从MongoDB网站下载源代码:(最右边的专栏)源代码可从github获得:这可能是解决此问题的正确方法。还有一些可能是相关的。但也许shalki在一周的故障排除后已经发现并尝试了这些?是的。。我也试过了。增加这一点是行不通的。同样的错误也会发生。如果将connectionsPerHost设置为与线程池一样大的值,则永远不会出现现在出现的错误。