【发布时间】:2014-12-13 23:16:34
【问题描述】:
我是 mongodb 的新手。 我使用 mongodb 2.6.x。我正在尝试使用 java 驱动程序 2.12.x 版本与 mongodb 连接,我正在使用 MongoClient 与 mongodb 连接。每次我做任何操作时,我都会在 mongodb 管理部分收到消息,比如连接数是打开的,每次我在 mongodb 中做一些杂乱的操作时,连接数都会增加。所以,我关心的是我应该关闭连接还是不手动关闭。如果我应该手动关闭连接,那么过程是什么。因为我从中获取 Db 对象的 MongoClient 没有提供任何关闭连接的方法。
我编写的获取连接的代码是这样的:
new MongoClient("localhost", 27017).getDB("test");
从这里我得到了 DB 对象。我正在用我的网络应用程序尝试它。
如果有人有任何想法,请告诉我是否应该手动关闭 mongodb 连接。如果是那怎么办?
提前致谢。
【问题讨论】:
-
直接从文档中`处理实例,确保调用 MongoClient.close() 来清理资源'。 mongo doc here。也许你需要更新??
-
谢谢,但我已经提到我正在使用 mongo-java-driver-2.12.4.jar 并且我没有得到像 MongoClent.close() 这样的任何方法。如果我错了,请告诉我更多细节。感谢您的重播。
-
您是要在 DB 或 MongoClient 上调用 close 吗?方法链接很方便,但您需要注意哪个方法返回什么引用。
-
您在第一条评论中提到的我的朋友喜欢像这样 [MongoClient.close()] 关闭连接。所以我正在尝试这样。我确实检查了 MongoClient 和 Db 文件的源代码。我没有得到像 close() 这样的方法。谢谢
-
仅供参考,关闭不是 Mongoclient 上的静态方法。 close() 是 Mongo.class 的非静态成员。所以你需要在mongoclient的实例上调用close()。