2017-05-16 7 views
0

oracle 용 DB 연결 풀에 UCP jar 11.2.0.3.0을 사용하고 있습니다. 여기에 몇 가지 DB 접속 연결을 시작한다 (400) 수확까지 도달 카운트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> 

내가 기대하고있다가 사용되는 구성과 가까운 50 개 연결은 다시 풀에 장소를합니다. 하지만 30-40 개의 연결 만 사용 중이더라도 연결 닫기 예외가 발생합니다. 여기에 누락 된 구성이 있습니까?

답변

0

수확은 응용 프로그램에서 구성된 연결 풀을 고려하지 않습니다. 응용 프로그램에서 열린 모든 연결을 확인하고 최대 개수 및 수확 트리거 수를 계산하고 마지막으로 연결을 닫습니다. 예를 들어 100 개의 연결 풀을 구성 할 수 있지만 응용 프로그램이 한 번에 100 개의 모든 연결을 시작하지는 않습니다. 따라서 응용 프로그램에는 40 개의 연결이있을 수 있습니다. 최대 연결 수는 10이고 수확 트리거 수는 10입니다. 90 개의 연결로 전체 응용 프로그램을 사용할 때 10 개의 수확 물을 수확하고 응용 프로그램을 저장하기 위해 80을 유지해야합니다. 그러나 Harvesting은 응용 프로그램이 40 개의 연결을 활성화 할 때만 30에 도달 한 사용량에서 연결을 종료합니다.