Pregunta

Tengo una aplicación Play Framework 2.2.2 que estoy implementando como .war archivo y ejecutándose bajo Tomcat 7.Mi aplicación se ejecuta durante días sin problemas en mi máquina de desarrollo local (a través del servidor integrado de Play, no de Tomcat), pero una vez que la implemento en Tomcat, después de varias horas el servidor Tomcat se bloqueará, eliminando todas las demás aplicaciones que se ejecutan en él. también.

Creo que el problema es que el BoneCP El grupo de conexiones en Play y el grupo de conexiones integrado de Tomcat están en conflicto.No hay mucha o ninguna información útil en los registros de Tomcat, así que me quedo con la duda.

Me gustaría deshabilitar la agrupación de conexiones BoneCP dentro de mi aplicación Play, pero no puedo encontrar información sobre cómo hacerlo.

¡Cualquier consejo apreciado!

¿Fue útil?

Solución

Existen varias soluciones posibles para esto, que podrían ser más o menos preferibles para su entorno de implementación.

  1. Play te ofrece una conexión de base de datos "lista para usar", que no necesitas usar.Suelte el componente Play JDBC de su archivo de compilación (elimine jdbc de tu libraryDependencies) y configure sus conexiones JDBC manualmente usted mismo.Por ejemplo, puedes hacer un singleton TomcatConnectionPool que tiene una funcion getConnection() que te brinda la conexión JDBC que necesitas para usar en tus acciones de Play.

  2. Escribe tu propio complemento extendiendo específicamente Obras de teatro DBPlugin interfaz para que sea un complemento de base de datos.Impleméntalo como el complemento BoneCPlugin de Play pero haga que utilice el grupo de conexiones Tomcat en lugar de BoneCP.

  3. Utilice el complemento de base de datos de Play personalizado ya creado por otra persona, como este que usa c3p0.Tengo alguna evidencia anecdótica de que c3p0 funciona bien con Tomcat, pero su kilometraje varía.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top