sql >> Base de Datos >  >> RDS >> Mysql

Zombie Connections a MySQL usando c3p0 con tomcat

Hay un par de posibilidades.

Lo más probable es que haya colocado este elemento Resource en $CATALINA_BASE/conf/context.xml Ese archivo proporciona el context.xml predeterminado para cada aplicación web. Por lo tanto, si tiene seis aplicaciones web, tendrá seis grupos de conexiones. Dado que el tamaño mínimo de la encuesta es 200, habrá un mínimo de 200*6=1200 conexiones abiertas a la base de datos.

La otra posibilidad es que la aplicación web haya sido recargada. Debería obtener un nuevo grupo de conexiones y el anterior se GC'd. Sin embargo, si tiene una fuga de memoria al recargar (muy fácil de hacer sin darse cuenta), puede mantener el conjunto de conexiones, junto con sus conexiones abiertas, en la memoria, lo que aumenta sus conexiones totales.

Para poner las definiciones en server.xml :

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

y esto en context.xml :

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