2011-03-13 2 views
2

클러스터 된 환경에서 Jboss 6을 설정하고 클러스터 된 상태 저장 싱글 톤 EJB를 호스트하는 데 사용하려고합니다.Jboss 6 클러스터 싱글 톤 클러스터

우리는 이제 클러스터 내에서 (각 노드에 배포 된 웹 사이트를 통해) 응용 프로그램에 대한 다른 진입 점이 EJB가 호스트되는 단일 환경을 가리키는 Singleton EJB를 성공적으로 설치했습니다 (따라서 정적 변수의 상태를 유지해야 함).). 우리는 다음과 같은 구성하여이 달성 :

콩을 인터페이스 :

@Remote 
public interface IUniverse { 
    ... 
} 

콩 구현 :

@Clustered @Stateful 
public class Universe implements IUniverse { 
    private static Vector<String> messages = new Vector<String>(); 
    ... 
} 

의 jboss-beans.xml 환경 구성 : 대한

<deployment xmlns="urn:jboss:bean-deployer:2.0"> 
    <!-- This bean is an example of a clustered singleton --> 
    <bean name="Universe" class="Universe"> 
    </bean> 
    <bean name="UniverseController" class="org.jboss.ha.singleton.HASingletonController"> 
     <property name="HAPartition"><inject bean="HAPartition"/></property> 
     <property name="target"><inject bean="Universe"/></property> 
     <property name="targetStartMethod">startSingleton</property> 
     <property name="targetStopMethod">stopSingleton</property> 
    </bean> 
</deployment> 

가장 큰 문제 이 구현은 마스터 노드 (상태를 포함하는 노드 싱글 톤 EJB의)가 gracefuly 종료되면 싱글 톤의 상태가 손실되고 기본값으로 재설정됩니다. 이 주제에 대해 JBoss 6 문서가 발견되지 않았으므로 모든 것이 JBoss 5 클러스터링 문서에 따라 구성되었습니다. 이 문제를 해결하는 방법에 대한 정보 나 클러스터링에 대한 JBoss 6 문서의 어디서 발견 할 수 있습니까?

+0

클러스터 된 상태 저장 싱글 톤은 해결하기가 어려운 문제입니다. 나는 당신이 야쿠 쉐이빙의 세계를 위해 있기 때문에 당신이 가지고있을 필요가 없도록 당신의 시스템을 시도하고 재 설계 할 것을 강력히 권한다. – skaffman

답변

1

Stateful Session Bean을 호출하는 방법은 얻은 참조를 Bean에 보관하고 참조의 동일한 인스턴스를 호출하는 것이므로 실제로 "싱글 톤"상태 세션빈이 필요하다고 생각하지 않습니다. 응용 프로그램 서버 클러스터는 클러스터에서 ejb 세션을 유지 관리하여 상태 저장 세션 빈의 상태를 유지합니다.

결국, 나는 당신이 Stateful Session Bean을 사용할 필요성을 재검토하기를 원할 수도 있다는 것에 동의한다.