2012-07-07 1 views
1

Nous utilisons tomcat 6.0.26 avec MySql 5.1, la connexion à la base de données est mis en place dans server.xml comme indiqué ci-dessous,Tomcat qui ne ferment pas les connexions, reste en mode veille

<GlobalNamingResources> 
<!-- Editable user database that can also be used by 
    UserDatabaseRealm to authenticate users 
--> 
<Resource name="UserDatabase" auth="Container" 
      type="org.apache.catalina.UserDatabase" 
      description="User database that can be updated and saved" 
      factory="org.apache.catalina.users.MemoryUserDatabaseFactory" 
      pathname="conf/tomcat-users.xml" /> 

<Resource name="jdbc/abs" type="javax.sql.DataSource" maxActive="150" maxIdle="5" username="XXXXXXXXXXX" testWhileIdle="true" removeAbandonedTimeout="60" maxWait="-1" removeAbandoned="true" 
    validationQuery="select 1" driverClassName="com.mysql.jdbc.Driver" password="XXXXXXXXXXX" minEvictableIdleTimeMillis="30000" timeBetweenEvictionRunsMillis="300000" url="jdbc:mysql://XXXXXXXXXXXX?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8"/> 

    <Resource driverClassName="com.mysql.jdbc.Driver" maxActive="150" maxIdle="5" maxWait="-1" testWhileIdle="true" minEvictableIdleTimeMillis="30000" removeAbandonedTimeout="60" timeBetweenEvictionRunsMillis="300000" name="jdbc/1234" password="XXXXXXXXXXX" removeAbandoned="true" type="javax.sql.DataSource" url="jdbc:mysql:///XXXXXXXXXXXXXXXXXXXXXX?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8" username="XXXXXXXXXXX" validationQuery="select 1"/> 

Lorsque Je cours show full processlist dans MySQL il montre beaucoup de connexion restant en mode veille, ce qui pourrait être à l'origine de cela?

Regards,

Rohit

+0

Je suis confronté au même problème. Avez-vous pu résoudre le problème? –

Répondre

-1

A javax.sql.DataSource est un pool de connexion à MySQL. Votre serveur d'application va ouvrir certaines connexions à MySQL (qui restent en mode veille) et les utiliser chaque fois que vous faites un:

DataSource ds = ...; 
// you get one of the 'sleeping' connections here 
Connection conn = ds.getConnection(); 
// you return the connection to the pool here (it does not actually closes it) 
conn.close(); 
Questions connexes