2012-03-06 7 views
0

私のアプリケーションには時々破損するBeanがあり、それがシングルトンなので、アプリケーション全体をリフレッシュするために再起動する必要があります。 SpringがSingleton Beanを破壊して再作成し、既存のBean内のすべての参照を置き換えることは可能ですか?破損したものを置き換えるためにSpringに新しいシングルトンBeanを作成する

これが問題ならば、これは私に問題を起こしている豆です。そのActive Directoryに接続するLdapContextSource。ときどきバインディングが機能しなくなる(「org.springframework.ldap.CommunicationException:単純バインドが失敗しました」)、アプリケーションがバウンスするまで彼女が書いたのはすべてです。

<bean id="adContextSourceTarget" 
    class="org.springframework.ldap.core.support.LdapContextSource"> 
    <property name="url" ref="adUrl" /> 
    <property name="base" ref="adBase" /> 
    <property name="userDn" ref="adUsername" /> 
    <property name="password" ref="adPassword" /> 
</bean> 

ダウンしている、それはサーバの場合は、1つが結合しようとするが起こることが表示されますとあります。このアプリケーションには、次の2台のサーバー上で実行されていて、それがADではないので、彼らは両方同時にダウンではありません"うんざり"は、Beanは回復できません。そしてそこに私の疑問があります。Springに既存のSingleton Beanを新しいものに置き換える方法がありますか?

答えて

0

LDAPコンテキストソースをプールすることをおすすめします。バインドが失敗した場合は、接続を閉じて、プールの外に別のものをチェックしてください。

http://static.springsource.org/spring-ldap/docs/1.1/reference/

+0

どのように正確に、あなたは「接続を閉じ、プールの外に別のものをチェックし、」ldapTemplateを使用していますか? –

+0

セクション5.1.3私があなたに送ったリンクのプーリングを見ましたか? – duffymo

関連する問題