LDAP Pooling Configuration for KIM
The LDAP data source that you supply are injected into a Spring PoolingContextSource bean which is in turn injected into the KIM Identity Service.
Here is a table of the pre-defined properties fed into PoolingContextSource
Property | Parameter |
|---|---|
maxActive | ldap.pool.maxActive |
maxTotal | ldap.pool.maxTotal |
maxIdle | ldap.pool.maxIdle |
maxWait | ldap.pool.maxWait |
whenExhaustedAction | ldap.pool.whenExhaustedAction |
testOnBorrow | ldap.pool.testOnBorrow |
testOnReturn | ldap.pool.testOnReturn |
testWhileIdle | ldap.pool.testWhileIdle |
timeBetweenEvictionRunsMillis | ldap.pool.timeBetweenEvictionRunsMillis |
numTestsPerEvictionRun | ldap.pool.numTestsPerEvictionRun |
minEvictableIdleTimeMillis | ldap.pool.minEvictableIdleTimeMillis |
You can configure LDAP pooling using either of the following methods:
Set all parameters yourself
classpath:edu/ucdavis/myapp/config/client-config.xml
<config> ... <param name="ldap.pool.maxTotal">-1</param> ... <param name="ldap.pool.testOnBorrow">true</param> </config>Tell KIM Identity Service to use default properties while you set one or more parameters
classpath:edu/ucdavis/myapp/config/client-config.xml
<config> ... <param name="config.location">classpath:META-INF/common-config-defaults.xml</param> <param name="config.location">classpath:edu/ucdavis/iet/kuali/rice/kim/config/default-properties.xml</param> ... <param name="ldap.pool.testOnBorrow">true</param> ... </config>At minimum, you must set ldap.pool.testOnBorrow to true, or else the PoolingContextSource won't be validating any connections in the pool.
Tell Rice to use default properties using Spring while you set one or more parameters
classpath:edu/ucdavis/myapp/config/application-common.xml
<bean id="config" class="org.kuali.rice.core.config.spring.ConfigFactoryBean"> <property name="configLocations"> <list> <value>classpath:edu/ucdavis/iet/kuali/rice/kim/config/default-properties.xml</value> <value>classpath:edu/ucdavis/myapp/config/client-config.xml</value> </list> </property> </bean>classpath:edu/ucdavis/myapp/config/client-config.xml
<config> ... <param name="ldap.pool.testOnBorrow">true</param> ... </config>