Mysql
 sql >> Base de données >  >> RDS >> Mysql

Connexions zombies à MySQL en utilisant c3p0 avec tomcat

Il y a plusieurs possibilités.

Le plus probable est que vous ayez placé cet élément Resource dans $CATALINA_BASE/conf/context.xml Ce fichier fournit le context.xml par défaut pour chaque application Web. Par conséquent, si vous avez six applications Web, vous aurez six pools de connexions. Étant donné que la taille minimale du sondage est de 200, il y aura un minimum de 200*6=1200 connexions ouvertes à la base de données.

L'autre possibilité est que l'application Web ait été rechargée. Vous devriez obtenir un nouveau pool de connexion et l'ancien sera GC'd. Cependant, si vous avez une fuite de mémoire lors du rechargement (très facile à faire sans vous en rendre compte), cela peut conserver le pool de connexions, ainsi que ses connexions ouvertes, en mémoire, augmentant ainsi le nombre total de connexions.

Pour mettre les définitions dans server.xml :

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

et ceci dans context.xml :

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