Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jboss 6集群单例集群_Jboss_Singleton_Ejb 3.1_Cluster Computing - Fatal编程技术网

Jboss 6集群单例集群

Jboss 6集群单例集群,jboss,singleton,ejb-3.1,cluster-computing,Jboss,Singleton,Ejb 3.1,Cluster Computing,我试图在集群环境中设置JBoss6,并使用它来承载集群的有状态单例EJB 到目前为止,我们成功地在集群中安装了一个单例EJB,其中指向应用程序的不同入口点(通过部署在每个节点上的网站)指向EJB所在的单个环境(从而保持静态变量的状态)。我们通过以下配置实现了这一点: <deployment xmlns="urn:jboss:bean-deployer:2.0"> <!-- This bean is an example of a clustered singleton

我试图在集群环境中设置JBoss6,并使用它来承载集群的有状态单例EJB

到目前为止,我们成功地在集群中安装了一个单例EJB,其中指向应用程序的不同入口点(通过部署在每个节点上的网站)指向EJB所在的单个环境(从而保持静态变量的状态)。我们通过以下配置实现了这一点:

<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>
Bean接口:

@Remote
public interface IUniverse {
  ...
}
Bean实现:

@Clustered @Stateful
public class Universe implements IUniverse {
  private static Vector<String> messages = new Vector<String>();
  ...
}
@Clustered@Stateful
公共类Universe实现了IUniverse{
私有静态向量消息=新向量();
...
}
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>

Startzingleton
单子

此实现的主要问题是,在主节点(包含singleton EJB状态的节点)正常关闭后,singleton的状态将丢失并重置为默认状态。请注意,所有内容都是按照JBoss5集群文档构建的,因为在这个主题上没有找到JBoss6文档。任何关于如何解决这个问题或在何处找到集群上的JBoss 6文档的信息都是值得赞赏的。

我认为您实际上不需要“单例”有状态会话bean,因为调用有状态会话bean的方法是保留对该bean的引用,并调用该引用的相同实例。应用服务器集群将通过维护集群中的ejb会话来维护有状态会话bean的状态性


但最后,我同意您可能需要重新考虑使用有状态会话bean的必要性。

集群、有状态单例是一个很难解决的问题。我强烈建议你尝试重新设计你的系统,这样你就不需要有一个,因为你正处在一个牦牛剃须的世界。