Spring LDAP连接池不起作用

时间:2016-03-11 21:20:51

标签: spring ldap connection-pooling

我有一个AXIS2 Web服务,它使用Spring LDAP访问多个目录。它运行在Weblogic 10.3.6上。我正在尝试使用Spring Connection池来管理每个ContextSource的ldap连接。应用程序将部署,运行,返回ldap数据,但连接池不起作用。我让ldap人检查目录日志并验证没有池。我可以运行netstat -a | grep连接,我看到很多TIME_WAIT条目。我想知道罐子的组合是问题还是可能的配置问题,不允许池化生效。我验证了下面的所有jar都在构建,Weblogic java类路径和AXIS2 WEB-INF / lib目录中。任何解决这个问题的建议都是 赞赏。

Jar文件: spring.jar(v2.5.6)
弹簧LDAP的核 - 2.0.2.RELEASE.jar
公共池-1.6.jar

Spring应用程序上下文文件:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:ldap="http://www.springframework.org/schema/ldap" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/ldap 
    http://www.springframework.org/schema/ldap/spring-ldap.xsd">

<bean id="MyContextSource" class="org.springframework.ldap.pool.factory.PoolingContextSource">
    <property name="contextSource" ref="ContextSourceTarget" />
    <property name="dirContextValidator"  ref="ContextValidator" />
    <property name="testOnBorrow" value="true" />
    <property name="testOnReturn" value="false" />
    <property name="testWhileIdle" value="false" />
    <property name="maxActive" value="5" />
    <property name="maxTotal" value="5" />
    <property name="maxIdle" value="1" />
    <property name="minIdle" value="0" />
    <property name="maxWait" value="5000" />
    <property name="whenExhaustedAction" value="1" />
    <property name="timeBetweenEvictionRunsMillis" value="-1" />
    <property name="numTestsPerEvictionRun" value="3" />
    <property name="minEvictableIdleTimeMillis"  value="1800000" />
</bean> 

<bean id="ContextValidator"  class="org.springframework.ldap.pool.validation.DefaultDirContextValidator" >
</bean>

<bean id="ContextSourceTarget"  class="org.springframework.ldap.core.support.LdapContextSource">
    <property name="url" value="" />
    <property name="userDn" value="" />
    <property name="password" value="" />
    <property name="pooled" value="false" />
</bean>

<bean id="LdapTemplate"  class="org.springframework.ldap.core.LdapTemplate">
    <constructor-arg ref="ContextSourceTarget" />
</bean>

<bean id="LdapDao" class="com.common.LdapDaoImpl">
    <property name="ldapTemplate" ref="LdapTemplate" />
</bean>

0 个答案:

没有答案