From d5e43729aa80e6b4156718b453e2e71620917fff Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Mon, 2 Dec 2024 12:27:38 -0500 Subject: FE: one receiver per RM --- src/main/java/derms/ReplicaManager.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/main/java/derms/ReplicaManager.java') diff --git a/src/main/java/derms/ReplicaManager.java b/src/main/java/derms/ReplicaManager.java index 9e3a6cc..1f95fac 100644 --- a/src/main/java/derms/ReplicaManager.java +++ b/src/main/java/derms/ReplicaManager.java @@ -25,19 +25,25 @@ public class ReplicaManager { private Replica replica; private Response response; private final Logger log; - private ReliableUnicastSender unicastSender = new ReliableUnicastSender<>(new InetSocketAddress("localhost", 1999)); + private InetSocketAddress frontEndAddress; + private ReliableUnicastSender unicastSender; private TotalOrderMulticastReceiver multicastReceiver; - private final InetSocketAddress frontEndAddress; public ReplicaManager(int replicaId) throws IOException { this.replicaId = replicaId; this.log = Logger.getLogger(getClass().getName()); - this.frontEndAddress = new InetSocketAddress("localhost", 1999); + initUnicastSender(); initReplica(); initMulticastReceiver(); startHeartbeatThread(); } + private void initUnicastSender() throws IOException { + int frontEndPort = Config.frontendResponsePorts[replicaId - 1]; + frontEndAddress = new InetSocketAddress("localhost", frontEndPort); + unicastSender = new ReliableUnicastSender<>(frontEndAddress); + } + private void initReplica() throws IOException { switch (replicaId) { case 1: -- cgit v1.2.3 From 141212aeaa705052499229e26437a08a9096c46a Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Mon, 2 Dec 2024 12:58:18 -0500 Subject: pass FE ip address as cmdline arg --- src/main/java/derms/ReplicaManager.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src/main/java/derms/ReplicaManager.java') diff --git a/src/main/java/derms/ReplicaManager.java b/src/main/java/derms/ReplicaManager.java index 1f95fac..414cdf0 100644 --- a/src/main/java/derms/ReplicaManager.java +++ b/src/main/java/derms/ReplicaManager.java @@ -21,6 +21,7 @@ import java.io.ObjectInputStream; import java.util.logging.Logger; public class ReplicaManager { + public static final String usage = "Usage: java ReplicaManager "; private final int replicaId; private Replica replica; private Response response; @@ -29,18 +30,18 @@ public class ReplicaManager { private ReliableUnicastSender unicastSender; private TotalOrderMulticastReceiver multicastReceiver; - public ReplicaManager(int replicaId) throws IOException { + public ReplicaManager(int replicaId, InetAddress frontEndIP) throws IOException { this.replicaId = replicaId; this.log = Logger.getLogger(getClass().getName()); - initUnicastSender(); + initUnicastSender(frontEndIP); initReplica(); initMulticastReceiver(); startHeartbeatThread(); } - private void initUnicastSender() throws IOException { + private void initUnicastSender(InetAddress frontEndIP) throws IOException { int frontEndPort = Config.frontendResponsePorts[replicaId - 1]; - frontEndAddress = new InetSocketAddress("localhost", frontEndPort); + frontEndAddress = new InetSocketAddress(frontEndIP, frontEndPort); unicastSender = new ReliableUnicastSender<>(frontEndAddress); } @@ -134,15 +135,16 @@ public class ReplicaManager { } public static void main(String[] args) { - if (args.length != 1) { - System.err.println("Usage: java ReplicaManager "); + if (args.length < 2) { + System.err.println(usage); System.exit(1); } int replicaId = Integer.parseInt(args[0]); try { - ReplicaManager replicaManager = new ReplicaManager(replicaId); + InetAddress frontEndIP = InetAddress.getByName(args[1]); + ReplicaManager replicaManager = new ReplicaManager(replicaId, frontEndIP); System.out.println("ReplicaManager " + replicaId + " is running."); } catch (IOException e) { System.err.println("Failed to start ReplicaManager: " + e.getMessage()); -- cgit v1.2.3