【问题标题】:Wildfly 10.1.0 Singleton doesn't workWildfly 10.1.0 Singleton 不起作用
【发布时间】:2017-03-06 05:31:29
【问题描述】:

我在一个域中配置了两个 Wildfly 服务器,我需要创建一个使用 HA 运行的单例。我需要它只在一台服务器上运行,如果该服务器出现故障,它应该在从服务器中启动。 我正在使用默认配置,我只在我的 WAR 中创建了“/META-INF/singleton-deployment.xml”。 当我部署 WAR 时,它会在两台服务器中启动!不仅在一个。缺什么?我需要在 domain.xml 中编辑一些内容吗?

我的单例只向日志文件和控制台写入一个文本,只是为了测试:

import java.net.InetAddress;
import java.net.UnknownHostException;
import javax.ejb.ConcurrencyManagement;
import javax.ejb.ConcurrencyManagementType;
import javax.ejb.Schedule;
import javax.ejb.Singleton;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

@ConcurrencyManagement(ConcurrencyManagementType.CONTAINER)
@Singleton
public class TesteAPP {

    final Logger logger = LogManager.getLogger(TesteAPP.class);

    @Schedule(second = "*/1", minute = "*", hour = "*", persistent = false)
public void executaTarefa() {
    try {
        logger.log(Level.INFO, "Tarefa executada com sucesso! Nome da         máquina: {} Endereço da máquina: {}",
                InetAddress.getLocalHost().getHostName(),
                InetAddress.getLocalHost().getHostAddress());
        System.out.println(String.format("Tarefa executada com sucesso! Nome da máquina: %s Endereço da máquina: %s",
                InetAddress.getLocalHost().getHostName(),
                InetAddress.getLocalHost().getHostAddress()));
    } catch (UnknownHostException e) {
        logger.log(Level.ALL, "Tarefa executada com sucesso!");
        System.out.println(String.format("Tarefa executada com sucesso!"));
    }
}


}

【问题讨论】:

  • 包没有忘记?

标签: java singleton wildfly high-availability wildfly-10


【解决方案1】:

已回复https://stackoverflow.com/a/27956003/653069

根据 EJB 3.1 规范,@Singleton 仅适用于每个 JVM 而不是每个集群。

在容器分布在多个虚拟机上的情况下,每个应用程序将为每个 JVM 拥有一个 Singleton 的 bean 实例。

不过,您可以使用 JBoss 特定的方式。看看cluster-ha-singleton quickstart - EAP 7.0 ,它也应该适用于 WildFly 10.x。

【讨论】:

    猜你喜欢
    • 2017-01-21
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    • 2018-10-05
    • 2018-05-27
    • 2019-02-04
    • 2018-02-09
    • 2023-03-14
    相关资源
    最近更新 更多