1

MySql 5.1 で tomcat 6.0.26 を使用しています。データベースへの接続は、以下のように server.xml で設定されます。

<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"/>

MySql で show full processlist を実行すると、スリープ モードのまま多くの接続が表示されます。何が原因でしょうか?

よろしく、

ロヒット

4

1 に答える 1

-1

Ajavax.sql.DataSourceは MySQL への接続プールです。アプリケーション サーバーは、MySQL へのいくつかの接続を開き (スリープ モードのまま)、次のことを行うたびにそれらを使用します。

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();
于 2012-07-07T16:06:51.373 に答える