Oracle连接收获无法按预期工作

时间:2017-05-16 10:50:46

标签: java oracle connection-pooling ucp

我正在使用UCP jar 11.2.0.3.0作为oracle的数据库连接池。以下是一些数据库连接配置

<property name="datasource.connections.connectionHarvestTriggerCount">100</property>
<property name="datasource.connections.connectionHarvestMaxCount">50</property>
<property name="datasource.connections.min_size">5</property>
<property name="datasource.connections.max_size">500</property>
<property name="datasource.connections.idle_test_period">100</property>
<property name="datasource.connections.testConnectionOnCheckout">true</property>
<property name="datasource.connections.checkoutTimeout">60000</property>
<property name="datasource.connections.timeout">300</property>
<property name="datasource.connections.preferredTestQuery">SELECT 1 from dual</property>
<property name="datasource.max_statements">200</property>
<property name="datasource.connections.wait.timeout">3</property>

我期待使用的连接数达到400,收获应该开始和关闭50个连接,他们回到池中。 但即使只使用了30-40个连接,我也面临连接异常。我在这里缺少任何配置吗?

1 个答案:

答案 0 :(得分:0)

收获永远不会考虑应用程序中配置的连接池。它只是检查从应用程序打开的所有连接,并计算最大计数和收获触发计数,最后关闭连接。例如,您可以配置100个连接池,但应用程序不会一次启动所有100个连接。因此应用程序可能有40个连接。我们的最大计数是10,收获触发计数是10,因为您期望当应用程序满90个连接时,收获10个,并保留80以保存您的应用程序。但是,只有当您的应用程序激活了40个连接时,Harvesting才会开始关闭在30时达到的使用连接。