我想在集羣環境中設置Jboss 6,並使用它來託管集羣狀態單例EJB。Jboss 6集羣Singleton集羣
到目前爲止,我們成功地在羣集中安裝了一個Singleton EJB,在這裏我們的應用程序的不同入口點(通過部署在每個節點上的網站)指向一個承載EJB的單個環境(從而維護靜態變量的狀態)。我們實現了這個使用以下配置:
Bean的接口:
@Remote
public interface IUniverse {
...
}
Bean實現:
@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)優雅地關閉,Singleton的狀態丟失並重置爲默認值。請注意,一切都是在JBoss 5集羣文檔之後構建的,因爲在這個主題上沒有找到JBoss 6文檔。任何關於如何解決這個問題的信息,或者在哪裏可以找到有關集羣的JBoss 6文檔,都是值得讚賞的。
羣集,有狀態的單身人士是一個難以解決的問題。我強烈建議你嘗試重新設計你的系統,這樣你就不需要擁有一個系統,因爲你需要一個犛牛剃鬚的世界。 – skaffman 2011-03-13 10:16:21