0

我在我的 tomcat 容器中使用带有 JNDI 的 Apache DBCP 来汇集到 mysql 数据库的连接。一切正常,但我看到的一个问题是,一旦 pconnection 被汇集,它就永远不会被释放。因此,在负载尖峰连接之后,它们将永远处于休眠状态。他们是通过 context.xml 参数缩小池的方法吗?这是我的配置:

        defaultAutoCommit="false"
        defaultTransactionIsolation="REPEATABLE_READ"
        auth="Container"
        type="javax.sql.DataSource"
        logAbandoned="true" 
        removeAbandoned="true"
        removeAbandonedTimeout="300" 
        maxActive="-1"
        initialSize="15"
        maxIdle="10"
        maxWait="10000" 
        username="user"
        password="password"
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost/mydb"/>
4

3 回答 3

2

尝试设置minEvictableIdleTimeMillis为低于其默认值的值,即1000*60*30.

于 2009-07-06T05:30:20.073 回答
1

尝试使用c3p0连接池`~~

于 2009-07-06T05:38:11.273 回答
1

在类似的情况下,我使用 Tomcat 的 JMX 适配器来调整连接池的设置。这可以用于增加和减少池的大小。因此,至少在生产环境中启用对 servlet 容器的 JMX 远程访问是一个好主意,只是为了有机会对异常操作情况做出反应。

于 2009-07-06T05:44:20.903 回答