Mysql
 sql >> Database >  >> RDS >> Mysql

Zombie Connessioni a MySQL usando c3p0 con Tomcat

Ci sono un paio di possibilità.

La cosa più probabile è che tu abbia inserito questo elemento Risorsa in $CATALINA_BASE/conf/context.xml Quel file fornisce il context.xml predefinito per ogni applicazione web. Pertanto, se hai sei applicazioni web, avrai sei pool di connessioni. Poiché la dimensione minima del sondaggio è 200, ci saranno un minimo di 200*6=1200 connessioni aperte al database.

L'altra possibilità è che l'applicazione web sia stata ricaricata. Dovresti ottenere un nuovo pool di connessioni e quello vecchio sarà GC'd. Tuttavia, se si verifica una perdita di memoria durante il ricaricamento (molto facile da fare senza rendersene conto), è possibile che il pool di connessioni, insieme alle connessioni aperte, rimanga in memoria aumentando le connessioni totali.

Per inserire le definizioni in server.xml :

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

e questo in context.xml :

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