在dbcp 1.4中,如果底层的连接已经与数据库断开了,此时dbcp 1.4的实现并不释放内部连接,虽然早已提供了removeAbandoned和removeAbandonedTimeout参数,但是这两个参数在1.4中并没有生效,大概是以因为1.4中遗漏了调用BasicDataSource.startPoolMaintenance方法所致。要解决这个问题,需要将dbcp升级到1.4.1版本,而官方好像并没有正式发布1.4.1,可从其他源下载比如http://repository.jboss.org/commons-dbcp/commons-dbcp/1.4.1-SNAPSHOT/下载。