Java 什么会导致GenericObjectPool删除对象?

Java 什么会导致GenericObjectPool删除对象?,java,connection-pooling,apache-commons,Java,Connection Pooling,Apache Commons,在我目前使用的系统中,我们使用ApacheCommons作为Oracle连接池。我们最近注意到,不是所有的连接都被永久地保留和重复使用,而是池中的连接数量在上升和下降,就像连接被丢弃一样。代码中没有调用clear()或execute()方法,testOnBorrow和testOnReturn标志都设置为false。还有什么可能导致对象被丢弃?在我写这篇文章时解决了这个问题。虽然我们将maxActive设置为首选池大小,但我们没有设置maxIdle属性(默认值为8),因此任何时候超过8个连接处于空

在我目前使用的系统中,我们使用ApacheCommons作为Oracle连接池。我们最近注意到,不是所有的连接都被永久地保留和重复使用,而是池中的连接数量在上升和下降,就像连接被丢弃一样。代码中没有调用clear()或execute()方法,testOnBorrow和testOnReturn标志都设置为false。还有什么可能导致对象被丢弃?

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

对于需要固定大小的obj池的用户,请设置N==maxIdle&&N==maxActive