我在 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();
}
// ...
现在的问题是当这个Java servlet部署在linux服务器上时,它可以正常工作10天左右。
之后它崩溃了。
当我转到 var/log 目录中的 mongodb.log 时,我得到以下重复输出:
“连接被拒绝,因为打开的连接太多”
我不确定现在在哪里编辑内容或如何处理这个问题。我试图增加服务器中打开连接的限制,但结果仍然相同。
有什么建议吗?
最佳答案
来自 API 文档:http://api.mongodb.org/java/2.11.3/
公共(public)类 Mongo 扩展对象
具有内部连接池的数据库连接。 对于大多数应用程序,您应该为整个 JVM 使用一个 Mongo 实例。
关于java - 将 MongoDb 与 Java Servlet 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18785175/