我正在使用Spring LDAP(2.0.2.RELEASE)与我们的AD环境进行交互。我在applicationContext.xml中集成了池。
在Java LDAP docs(第3.4节)中,它陈述了
如果LDAP提供程序无法在该时间段内建立连接,则会中止连接尝试
我的问题是:spring是否处理此连接的重试,或者是否发生/抛出错误?我知道Spring使用了许多底层的JVM LDAP功能,但我还没有找到这方面的具体内容。
我的applicationContext的相关部分:
<bean id="dirContextValidator" class="org.springframework.ldap.pool.validation.DefaultDirContextValidator" />
<bean id="exampleConnectionDetails" class="org.springframework.ldap.core.support.LdapContextSource" scope="singleton">
<property name="url" value="ldaps://ldap.example.com:636" />
<property name="userDn" value="CN=LDAP_User,DC=example,DC=com" />
<property name="password" value="superSecretPwd" />
<property name="pooled" value="false"/>
<property name="referral" value="follow"/>
</bean>
<bean id="exampleContextSource" class="org.springframework.ldap.pool.factory.PoolingContextSource">
<property name="contextSource" ref="exampleConnectionDetails" />
<property name="dirContextValidator" ref="dirContextValidator" />
<property name="testOnBorrow" value="true" />
<property name="testWhileIdle" value="true" />
<property name="maxWait" value="10000" />
<property name="whenExhaustedAction" value="0" />
<property name="minIdle" value="5" />
<property name="maxIdle" value="10" />
<property name="timeBetweenEvictionRunsMillis" value="15000" />
<property name="minEvictableIdleTimeMillis" value="30000" />
<property name="numTestsPerEvictionRun" value="7" />
</bean>
答案 0 :(得分:0)
testOnBorrow的documentation说明了这一点,
testOnBorrow:指示在从池中借用对象之前是否验证对象。如果对象无法验证,它将从池中删除,并尝试借用另一个。
据我所知,Spring会在发生故障时尝试建立另一个连接。