【发布时间】:2014-07-07 13:54:29
【问题描述】:
我正在使用 tomcat-jdbc 连接数据库。我正在使用以下 PoolProperties
p.setUrl(url);
p.setDriverClassName(dirverClassName);//"mysqlDriver"
p.setUsername(userName);
p.setPassword(passWord);
p.setJmxEnabled(true);
p.setTestWhileIdle(false);
p.setTestOnBorrow(true);
p.setValidationQuery(validationQuery);//"select 1"
p.setTestOnReturn(false);
p.setValidationInterval(30000);
p.setTimeBetweenEvictionRunsMillis(30000);
p.setMaxActive(8);
p.setInitialSize(1);
p.setMaxWait(1000*60*1);
p.setRemoveAbandonedTimeout(2000);
p.setMinEvictableIdleTimeMillis(30000);
p.setMinIdle(1);
p.setMaxIdle(2);
p.setLogAbandoned(true);
p.setRemoveAbandoned(true);
我有两个问题
1>我经常从数据源获得连接。有时它会超过 maxActive。同时,数据库中的某些连接处于睡眠模式。睡眠连接在 MinEvictableIdleTimeMillis 之后关闭。所以我收到以下错误
`com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections"`
2> 有时我需要长时间保持连接,因为我在一个实例中插入膨胀数据。所以我为 MinEvictableIdleTimeMillis 设置了很大的值。将 MinEvictableIdleTimeMillis 时间设置得更大会增加连接休眠时间。
我认为我错误地使用了这些属性。请帮我解决问题。请指导我正确配置数据源。提前致谢
【问题讨论】:
标签: tomcat jdbc datasource connection-pooling