2 Stimmen

Jboss 6 Cluster Singleton Geclustert

Ich versuche, einen Jboss 6 in einer Clusterumgebung einzurichten und ihn zum Hosten von geclusterten zustandsbehafteten Singleton EJBs zu verwenden.

Bisher haben wir erfolgreich eine Singleton EJB innerhalb des Clusters installiert, bei der verschiedene Einstiegspunkte zu unserer Anwendung (über eine auf jedem Knoten bereitgestellte Website) auf eine einzige Umgebung verweisen, in der die EJB gehostet wird (wodurch der Zustand statischer Variablen erhalten bleibt). Wir haben dies mit der folgenden Konfiguration erreicht:

Bean-Schnittstelle:

@Remote
public interface IUniverse {
  ...
}

Implementierung der Bohne:

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

jboss-beans.xml-Konfiguration:

<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>

Das Hauptproblem bei dieser Implementierung besteht darin, dass nach dem ordnungsgemäßen Herunterfahren des Masterknotens (der den Status des Singleton EJB enthält) der Status des Singletons verloren geht und auf die Standardwerte zurückgesetzt wird. Bitte beachten Sie, dass alles nach den JBoss 5 Clustering-Dokumenten erstellt wurde, da keine JBoss 6-Dokumente zu diesem Thema gefunden wurden. Für jede Information, wie dieses Problem zu lösen ist oder wo man JBoss 6-Dokumente über Clustering finden kann, sind wir dankbar.

1voto

YukunIX Punkte 11

Ich glaube nicht, dass Sie tatsächlich "singleton" stateful Session Beans, wie der Weg zu stateful Session Bean aufrufen ist, um die erhaltenen Verweis auf die Bohne zu halten und rufen Sie die gleiche Instanz der Referenz. Der Anwendungsserver-Cluster wird die Statefulness der Stateful-Session-Beans aufrechterhalten, indem er die Ejb-Sitzung im gesamten Cluster aufrechterhält.

Aber am Ende stimme ich zu, dass Sie vielleicht Ihre Notwendigkeit der Verwendung von stateful Session Bean überdenken möchten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X