Juegue Framework 2.2.2 en Tomcat 7: elimine BoneCP
-
21-12-2019 - |
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!
Solución
Existen varias soluciones posibles para esto, que podrían ser más o menos preferibles para su entorno de implementación.
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 tulibraryDependencies
) y configure sus conexiones JDBC manualmente usted mismo.Por ejemplo, puedes hacer un singletonTomcatConnectionPool
que tiene una funciongetConnection()
que te brinda la conexión JDBC que necesitas para usar en tus acciones de Play.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.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.