Play Framework 2.2.2 su Tomcat 7 - Rimuovi BoneCP
-
21-12-2019 - |
Domanda
Ho un quadro di riproduzione 2.2.2 Applicazione che sto distribuendo come file .war
e in esecuzione sotto Tomcat 7. La mia applicazione viene eseguita per giorni senza problemi sulla mia macchina Dev locale (attraverso il server di riproduzione incorporato, non Tomcat), maUna volta che la dispongo sotto Tomcat, dopo diverse ore il server Tomcat si bloccherà, abbassando tutte le altre applicazioni in esecuzione anche su di esso.
Penso che il problema sia che il pool di collegamento BoneCP
in gioco e il pool di connessione integrato di Tomcat è in conflitto.Non ci sono molte o nessuna informazione utile nei registri Tomcat, quindi sono una specie di indovinamento a sinistra qui.
Mi piacerebbe disabilitare la connessione BoneCP Collegamento all'interno della mia applicazione Play, ma non riesce a trovare alcuna informazione su come farlo.
Qualsiasi consiglio apprezzato!
Soluzione
Ci sono diverse soluzioni possibili per questo, che potrebbero essere più o meno preferibili per il tuo ambiente di distribuzione.
- .
-
PLAY ti offre una connessione del database "out-of-the-box", che non è necessario utilizzare. Drop the Play JDBC Component dal file di build (rimuovi
jdbc
dallibraryDependencies
) e configura manualmente le connessioni JDBC da solo. Ad esempio, è possibile creare unTomcatConnectionPool
Singleton che ha una funzionegetConnection()
che ti offre la connessione JDBC necessaria per l'utilizzo nelle azioni di riproduzione. -
Scrivi il tuo plugin Estensione specificamente Interfaccia
DBPlugin
di riproduzione in modo che sia un plug-in database . Implementarlo Come il BoneCppGlugin del gioco ma fai uso del pool di connessione Tomcat anziché BoneCP. -
Utilizzare il plugin del database di riproduzione personalizzato di qualcun altro di qualcun altro, come questo che utilizza C3P0 < / a>. Ho delle prove aneddotiche che C3P0 funzioni bene con Tomcat, ma il tuo chilometraggio my varia.