2012-08-13 2 views
0

스프링 프래그먼트 mvc를 프런트 엔드로 사용하고 WAS에서 실행중인 일부 원격 EJB에 연결 중입니다. 이제 원격 EJB 조회 URL을 지정하는 포틀릿에 대한 구성 파일에서 EJB가 클러스터 된 WAS에 배치되었으므로 URL을 클러스터로 지정했습니다. 그래서 URL은 다음과 같습니다 : iiop://server1:port,iiop://server2:port.하나의 클러스터 멤버가 다운 된 경우 스프링이 초기 컨텍스트를 리프레시하는 방법은 무엇입니까

리소스를 절약하기 위해 spring mvc가 초기 컨텍스트를 캐시합니다. 이제 서버 중 하나가 작동하는 한 원격 EJB에 항상 연결할 수 있다는 것을 알게되었습니다.

초기 컨텍스트 조회시 클러스터가 해결 되었기 때문에 (그리고 더 나은 단어가 부족하여) 클러스터 멤버가 다운되면 연결 예외가 발생하므로 혼란 스럽습니다. 그렇다면 스프링은 초기 컨텍스트가 오래되어 자동으로 초기 컨텍스트를 새로 고쳐야하는시기를 어떻게 알 수 있습니까?

<jee:remote-slsb id="remoteService" jndi-name="com.business.ejb.ServiceSLRemote" business-interface="com.business.ejb.ServiceSLRemote" cache-home="true" lookup-home-on-startup="false" resource-ref="false" refresh-home-on-connect-failure="true"> 
<jee:environment> 
java.naming.factory.initial=${JAVA.NAMING.FACTORY.INITIAL} 
java.naming.provider.url=${JAVA.NAMING.PROVIDER.URL} 
</jee:environment> 
</jee:remote-slsb> 

그것은 초기 문맥이 오래된 될 경우, 다음 연결을 새로해야하는 스프링 컨테이너를 알려주는 refresh-home-on-connect-failure="true"입니다 :

답변

1

은 내가 applicationContext.xml 파일에서 선언이 있다는 것을 발견 . 이는 하나의 클러스터 멤버가 활성화되어있는 한 그렇게 작동 할 수 있습니다.