2013-04-12 120 views
0

在我目前正在使用的系统中,我们使用Apache Commons GenericObjectPool作为我们的Oracle连接池。我们最近已经注意到,不是所有的连接都被永久地保留和重用,连接池的连接数量会随着连接数量的增加而下降。代码中没有任何一点是我们调用clear()或evict()方法,并且testOnBorrow和testOnReturn标志都设置为false。还有什么可能导致对象被丢弃?什么会导致GenericObjectPool删除对象?

回答

1

解决这个,因为我正在写它。虽然我们将maxActive设置为我们的首选池大小,但我们并未设置maxIdle属性(默认值为8),因此任何时候超过8个连接都处于空闲状态,它们将被丢弃。

+0

对于那些想要修复大小的obj池的人,请设置N == maxIdle && N == maxActive – DiveInto

相关问题