Muss ich die Verbindung explizit schließen?

8

Ich habe eine Instanz von MongoClient und DB in meiner Anwendung und jedes Mal, wenn ich eine Operation ausführen möchte, rufe ich getCollection() auf.
Ich frage mich, ob ich die Verbindung explizit schließen muss, genau wie connection.close() in JDBC.

Um zu betonen, habe ich nur eine MongoClient Instanz. Meine Frage besteht nicht darin, MongoClient zu schließen, sondern die Verbindungen zu schließen. Ich glaube, es öffnet sich, wenn ich getCollection() anrufe.

    
danieln 12.11.2013, 19:26
quelle

2 Antworten

10

Nein, Sie müssen keine Verbindungen zur Datenbank schließen - Ihre einzige Verbindung besteht über MongoClient, und wie in der Dokumentation angegeben, wird das Verbindungs-Pooling für Sie erledigt.

Die einzige Ressource, die Sie aufräumen möchten, wäre ein Cursor Sie sollten close () beenden, wenn Sie damit fertig sind .

    
Asya Kamsky 13.11.2013, 09:23
quelle
1

Sie sollten schließen, wenn Sie viele MongoClient haben.

  

Die MongoClient-Instanz repräsentiert tatsächlich einen Pool von Verbindungen zu   die Datenbank; Sie benötigen nur eine Instanz der Klasse MongoClient   sogar mit mehreren Threads.

     

MongoClient.close () um Ressourcen zu bereinigen

     

MongoClient.close () - schließt den zugrunde liegenden Connector, der seinerseits   schließt alle offenen Verbindungen. Einmal aufgerufen, kann diese Mongo-Instanz nicht   länger verwendet werden.

Mehr: Ссылка

    
MariuszS 12.11.2013 19:35
quelle

Tags und Links