我在我的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"/>
答案 0 :(得分:2)
尝试将minEvictableIdleTimeMillis
设置为低于其默认值1000*60*30
的值。
答案 1 :(得分:1)
尝试使用c3p0连接池`~~
答案 2 :(得分:1)
在类似的情况下,我使用Tomcat的JMX适配器来调整连接池的设置。这可以用于增加和减少池的大小。因此,至少在生产环境中启用JMX远程访问servlet容器是一个好主意,只是为了有机会对特殊操作情况作出反应。