2013-03-19 1 views
0

많은 요청이 있고 최대 풀 크기에 도달하면 다른 요청은 리소스가 사용 가능할 때까지 대기한다는 것을 알게되었습니다. CommonsPoolTargetSource은 최대 풀 크기에 도달하면 새 개체 인스턴스가 만들어 지도록 어떻게 설정합니까? 초과 자원도 사용 후에 해제해야합니다.CommonsPoolTargetSource 풀 크기를 필요에 따라 증가 시키려면 어떻게합니까?

처음에는 minSize 속성을 검색했지만 CommonsPoolTargetSource에는 minSize 속성이 없음을 알았습니다.

<bean id="simpleBeanTarget" class="com.bean.SimpleBean" scope="prototype">   
</bean> 

<bean id="poolTargetSource" class="org.springframework.aop.target.CommonsPoolTargetSource"> 
    <property name="targetBeanName" value="simpleBeanTarget" /> 
    <property name="maxSize" value="3" /> 
    <!-- How do I let the pool grow if more than 3 instances is needed? --> 
    <!-- And how do I release the excess instances after usage? --> 
</bean> 

<bean id="simpleBean" class="org.springframework.aop.framework.ProxyFactoryBean"> 
    <property name="targetSource" ref="poolTargetSource" /> 
</bean> 

답변

2

<property name="whenExhaustedActionName" value="WHEN_EXHAUSTED_GROW" />

또는

<property name="whenExhaustedAction"> 
<util:constant static-field="org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_GROW"/> 
</property> 
+0

안녕, 루이스 시도 : 다음은 내 web.xml 파일의 본문입니다! 감사! 나는'whenExhaustedActionName'을'WHEN_EXHAUSTED_GROW'으로 설정하려고 시도했는데 현재 풀이 커지고 있습니다. 그러나 새로운 물체를 사용한 후에는 내 수영장이 3으로 줄어들지 않았습니다. 새 객체 인스턴스는 언제 삭제됩니까? 특정 기간 동안 비활성 상태로두면 초과 오브젝트를 어떻게 삭제합니까? – Arci

+2

timeBetweenEvictionRunsMillis 및 minEvictableIdleTimeMillis 속성을 사용해보십시오. 기본적으로 퇴거가 없습니다. –

+0

감사! CommonsPoolTargetSource의 속성에 대해 먼저 실험 할 것입니다. :) – Arci