如何缩小DB连接池?

时间:2009-07-06 05:05:07

标签: java tomcat jndi connection-pooling apache-commons-dbcp

我在我的tomcat容器中使用Apache DBCP和JNDI来连接到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"/>

3 个答案:

答案 0 :(得分:2)

尝试将minEvictableIdleTimeMillis设置为低于其默认值1000*60*30的值。

答案 1 :(得分:1)

尝试使用c3p0连接池`~~

答案 2 :(得分:1)

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