29

私は自分のアプリケーションでMongoClientとのインスタンスを 1 つ保持DBしており、何らかの操作を実行するたびに を呼び出しますgetCollection()。JDBC
のように、接続を明示的に閉じる必要があるかどうか疑問に思っています。connection.close()

強調するために、私は 1 つのMongoClientインスタンスしか持っていません。私の質問は閉じることではなくMongoClient、接続を閉じることですgetCollection().

4

2 に答える 2

32

いいえ、DB への接続を閉じる必要はありません。唯一の接続は MongoClient 経由であり、ドキュメントに記載されているように、接続プールを処理します。

クリーンアップしたい唯一のリソースは、使い終わったらclose()する必要があるカーソルです。

于 2013-11-13T09:23:53.847 に答える
8

MongoClient が多い場合は閉じてください。

MongoClient インスタンスは、実際にはデータベースへの接続のプールを表します。複数のスレッドがあっても、クラス MongoClient のインスタンスは 1 つしか必要ありません。

リソースをクリーンアップするための MongoClient.close()

MongoClient.close() - 基になるコネクタを閉じます。これにより、開いているすべての接続が閉じられます。一度呼び出されると、この Mongo インスタンスは使用できなくなります。

詳細: http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/

于 2013-11-12T19:35:49.283 に答える