2011-01-10 16 views
9

In base alla documentazione del driver Java MongoDB, il pool di connessioni del database viene magicamente gestito dall'oggetto Mongo.Connessioni della connessione al database dei driver Java MongoDB con Tomcat

Ciò significa che è sicuro creare un'istanza di un oggetto Singleton che si collega al database MongoDB in un servlet che verrà eseguito all'avvio di Tomcat e non preoccuparsi della configurazione del pool di connessioni del database in Tomcat tramite context.xml?

È questo il modo giusto per pensarci? Sto fraintendendo un concetto di base del pool di connessioni Tomcat/database in generale?

+0

Grazie Ana ho la stessa domanda ma tu l'hai formulata molto meglio di me. – DevilCode

risposta

9

Abbiamo utilizzato i driver Java tramite il progetto CFMongoDB e lo usiamo come descritto, ma in un'applicazione ColdFusion piuttosto che in Java. La stessa idea però: viene creato un oggetto e lo riutilizziamo e quell'oggetto mantiene l'unica connessione al server Mongo.

È possibile creare un'istanza Mongo Java e manterrà un pool interno di connessioni (dimensione predefinita di 10): per voi è nascosto e non è necessario preoccuparsi. La documentazione Mongo Java raccomandano questo:

http://www.mongodb.org/display/DOCS/Java+Driver+Concurrency

L'abbiamo in esecuzione in produzione ora e non ci sono stati problemi. Più thread di richieste Web utilizzano la stessa istanza di Mongo e Mongo è abbastanza veloce da gestire questo usando il suo pool interno (stiamo registrando in modo che possa scrivere molto velocemente!).

Vale la pena ricordare di chiamare close() su tutte le istanze che avete finito con - questo fermerà le connessioni abituando sul server di Mongo nel tempo:

http://api.mongodb.org/java/2.5-pre-/com/mongodb/Mongo.html#close()

Quindi, in sintesi, don Non preoccuparti della configurazione di Tomcat.

Spero che questo aiuti!

Problemi correlati