2011-01-10 15 views
9

De acuerdo con la documentación del controlador MongoDB Java, la agrupación de la conexión de la base de datos se maneja mágicamente mediante el objeto Mongo.Conexión de la base de datos del controlador de MongoDB Java con Tomcat

¿Esto significa que es seguro para crear una instancia de un objeto único que se conecta a la base de datos MongoDB en un servlet que se ejecutará cuando se inicia Tomcat y no preocuparse por la configuración de la agrupación de conexiones de base de datos en Tomcat a través de la context.xml?

¿Es esta la manera correcta de pensar al respecto? ¿Estoy malinterpretando algún concepto básico de la combinación de conexiones Tomcat/base de datos en general?

+0

Gracias, anaon Tengo la misma pregunta, pero la has redactado mucho mejor que yo. – DevilCode

Respuesta

9

Hemos estado utilizando los controladores de Java a través del proyecto CFMongoDB y lo usamos como usted describe, pero en una aplicación ColdFusion en lugar de en Java. La misma idea: se crea un objeto y lo reutilizamos, y ese objeto mantiene una conexión con el servidor de Mongo.

Puede crear una instancia de Mongo Java y mantendrá un grupo interno de conexiones (tamaño predeterminado de 10); para usted, está oculto y no necesita preocuparse por ello. Los documentos Mongo Java recomiendan esto:

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

lo tenemos en marcha ahora en la producción y no ha habido ningún problema. Múltiples hilos de solicitud web usan la misma instancia de Mongo y Mongo es lo suficientemente rápido como para manejar esto usando su grupo interno (¡estamos haciendo logging para que pueda escribir muy rápido!).

Vale la pena recordar que llamar close() en cualquier instancia que ha terminado con - esto detendrá conexiones acostumbrando en el servidor Mongo lo largo del tiempo:

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

Así que en resumen, don No te preocupes por configurar Tomcat.

Espero que ayude!

Cuestiones relacionadas