Я пытаюсь настроить Jboss 6 в кластерной среде и использовать его для размещения кластеризованных одноэлементных EJB с сохранением состояния.
До сих пор мы успешно установили 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) завершает работу изящно, состояние синглтона теряется и сбрасывается на значение по умолчанию.Обратите внимание, что все было построено в соответствии с документами JBoss 5 Clustering, так как никаких документов JBoss 6 по этому вопросу не найдено.Будем благодарны за любую информацию о том, как решить эту проблему или где найти документацию по кластеризации JBoss 6.