Ich habe zwei Wildfly-Server in einer Domäne konfiguriert, und ich muss einen Singleton, der mit HA läuft. Ich brauche es nur auf einem Server laufen, und wenn dieser Server ausfällt, sollte es auf dem Slave-Server gestartet werden. Ich verwende die default-Konfiguration und ich habe nur die "/META-INF/singleton-deployment.xml" in meinem WAR erstellt. Wenn ich die WAR bereitstellen, startet es auf beiden Servern! Nicht nur in einem. Was fehlt? Muss ich etwas in domain.xml bearbeiten?Wildfly 10.1.0 Singleton funktioniert nicht
nur Mein Singletons einen Text in die Protokolldatei und Konsole, nur zum Testen schreibt:
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!"));
}
}
}
Paket haben nicht vergessen? – igilfanov