将MongoDb与Java Servlet一起使用

and*_*apo 2 java servlets mongodb

我在Java servlet上使用Mongo DB时遇到了问题.

我的servlet有很多方法(~20)访问数据库以检索和添加数据.一个非常简短的例子:

public static String getSomething(String s) {
  String json = "[]";
  JSONArray jsonArray = new JSONArray();
  DBCollection table;

  try {
    Mongo mongo = new Mongo("localhost", 27017);
    DB db = mongo.getDB( "myDb" );  
        BasicDBObject quoteQuery = new BasicDBObject("abc", abc);
    DBCursor cursor = table.find(quoteQuery);

    try {
      while(cursor.hasNext()) {
        jsonArray.put(cursor.next());
      }
    } finally {
      cursor.close();
    }

// ...
Run Code Online (Sandbox Code Playgroud)

现在问题是当这个Java servlet部署在linux服务器上时,它可以正常工作10天左右.

之后它崩溃了.

当我去我的var/log目录中的mongodb.log时,我得到以下重复输出:

"因为太多的开放连接而拒绝连接"

我不确定现在在哪里编辑或如何处理这个问题.我试图增加服务器中打开连接的限制,但仍然有相同的结果.

有什么建议?

Fre*_*ose 11

来自API doc:http://api.mongodb.org/java/2.11.3/

公共类Mongo扩展了Object

具有内部连接池的数据库连接.对于大多数应用程序,您应该为整个JVM安装一个Mongo实例.