3

我想使用 PoolingDataSource 作为我的连接池(API 位于:http ://commons.apache.org/dbcp/apidocs/org/apache/commons/dbcp/PoolingDataSource.html ),但我不知道该怎么做当我不再需要游泳池时,请使用它。如果我想连接到新数据库并且不再需要旧池中的连接怎么办?池上没有关闭方法。

4

3 回答 3

3

您不一定需要杀死这个池来创建一个新池。

您可以使用 maxIdle、timeBetweenEvictionRunsMillis 和 minEvictableIdleTimeMillis 参数(请参阅此处)管理其中的连接,以确保空闲连接在合理的时间内关闭。

或者,您可以通过编程方式使用这些参数配置GenericObjectPool,并在创建 PoolingDataSource 时使用。如果你想强制它有一个 close() 方法。

于 2011-09-16T19:48:15.460 回答
2

很抱歉没有直接回答您的问题,但我可以建议不要使用 DBCP 吗?它有许多严重的问题,其他图书馆从中吸取了教训并加以改进。

那里有更好的游泳池

于 2011-09-16T19:50:20.717 回答
1

你用的是什么类型的游泳池?如果您使用的是AbandonedObjectPool,那么这是 Commons Pool 的GenericObjectPool的子类,它有一个close()方法。

于 2011-09-16T19:46:40.667 回答