Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zombie-Verbindungen zu MySQL unter Verwendung von c3p0 mit Tomcat

Es gibt ein paar Möglichkeiten.

Höchstwahrscheinlich haben Sie dieses Ressourcenelement in $CATALINA_BASE/conf/context.xml platziert Diese Datei stellt die Standard-context.xml für jede Webanwendung bereit. Wenn Sie also sechs Webanwendungen haben, haben Sie sechs Verbindungspools. Da die minimale Abfragegröße 200 beträgt, werden mindestens 200*6=1200 Verbindungen zur Datenbank geöffnet.

Die andere Möglichkeit ist, dass die Webanwendung neu geladen wurde. Sie sollten einen neuen Verbindungspool erhalten und der alte wird mit GC versehen. Wenn Sie jedoch beim Neuladen ein Speicherleck haben (sehr einfach, ohne es zu merken), kann es sein, dass der Verbindungspool zusammen mit seinen offenen Verbindungen im Speicher bleibt und Ihre Gesamtverbindungen erhöht werden.

Um die Definitionen in server.xml einzufügen :

<Server>
  <GlobalNamingResources>
     <Resource name="jdbc/xxxx">...</Resource>
  </GlobalNamingResources>
</Server>

und dies in context.xml :

  <ResourceLink name="jdbc/xxxx"
      global="jdbc/xxxx"
      type="com.mchange.v2.c3p0.ComboPooledDataSource" />