Frage

Ich habe eine Play Framework 2.2.2-Anwendung, die ich als bereitstelle .war Datei und läuft unter Tomcat 7.Meine Anwendung läuft tagelang ohne Probleme auf meinem lokalen Entwicklungscomputer (über den integrierten Server von Play, nicht über Tomcat), aber sobald ich sie unter Tomcat bereitstelle, stürzt der Tomcat-Server nach einigen Stunden ab und stürzt alle anderen darauf ausgeführten Anwendungen ab sowie.

Ich denke, das Problem ist, dass die BoneCP Der Verbindungspool in Play und der integrierte Verbindungspool von Tomcat stehen in Konflikt.Da es in den Tomcat-Protokollen nicht viele oder gar keine nützlichen Informationen gibt, bleibe ich hier eher im Ungewissen.

Ich möchte das BoneCP-Verbindungspooling in meiner Play-Anwendung deaktivieren, finde aber keine Informationen dazu.

Jeder Rat ist willkommen!

War es hilfreich?

Lösung

Hierfür gibt es mehrere mögliche Lösungen, die für Ihre Bereitstellungsumgebung mehr oder weniger vorteilhaft sein können.

  1. Play bietet Ihnen eine „out-of-the-box“-Datenbankverbindung, die Sie nicht verwenden müssen.Löschen Sie die Play JDBC-Komponente aus Ihrer Build-Datei (entfernen Sie sie jdbc von deiner libraryDependencies) und richten Sie Ihre JDBC-Verbindungen manuell selbst ein.Sie können beispielsweise einen Singleton erstellen TomcatConnectionPool das hat eine Funktion getConnection() Dadurch erhalten Sie die JDBC-Verbindung, die Sie für die Verwendung in Ihren Play-Aktionen benötigen.

  2. Schreiben Sie Ihr eigenes Plugin gezielt erweitern Theaterstücke DBPlugin Schnittstelle sodass es sich um ein Datenbank-Plugin handelt.Füge es ein wie das BoneCPPlugin von Play aber lassen Sie es den Tomcat-Verbindungspool anstelle von BoneCP verwenden.

  3. Verwenden Sie das bereits erstellte benutzerdefinierte Play-Datenbank-Plugin einer anderen Person. wie dieses, das c3p0 verwendet.Ich habe einige anekdotische Beweise dafür, dass c3p0 gut mit Tomcat funktioniert, aber Ihre Laufleistung variiert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top