2012-01-23 16 views
6

Używam sterownika Java, aby uzyskać dostęp do mongodb. Zakładam, że zbieranie połączeń przez db jest obsługiwane wewnętrznie przez sterownik. Jednak liczba moich połączeń wzrasta za każdym razem, gdy uzyskuję dostęp do bazy danych.połączenie mongodb połączenie

To jest mój dziennik serverStatus.

"connections" : { 
      "current" : 276, 
      "available" : 543 
    } 

Czy muszę wyraźnie zamykać połączenia mongo? Jak zarządzać łączeniem połączeń w java?

+0

możliwe duplikat [MongoDB Java bazy sterowników zestawianiem połączeń? z Tomcat] (http: // stackoverflow .pl/pytania/4647636/mongodb-java-driver-database-connection-pooling-with-tomcat) – fyr

Odpowiedz

17

Powinieneś użyć pojedynczego obiektu Mongo, więc zrobi to za Ciebie. Jeśli jednak używasz wielu obiektów, musisz jednoznacznie wywołać .close().

Od: http://www.mongodb.org/display/DOCS/Java+Tutorial

Klasa Mongo ma być bezpieczny i dzielone między wątków wątek. Zwykle tworzysz tylko 1 wystąpienie dla danego klastra DB i używasz go w całej aplikacji. Jeśli z jakiegoś powodu zdecydujesz się stworzyć wiele intances Mongo pamiętać, że:

wszelkie granice wykorzystania zasobów (połączenia Max, itp) stosuje się za Mongo wystąpienie do dysponowania instancji, upewnij się, zadzwoń mongo.close() aby oczyścić zasoby

Powiązane problemy