/** * Transfer the failure-detection ports from another view to this one */ public void setFailureDetectionPorts(NetView otherView) { int[] ports = otherView.getFailureDetectionPorts(); if (ports != null) { int idx = 0; int portsSize = ports.length; for (InternalDistributedMember mbr : otherView.getMembers()) { if (contains(mbr)) { // unit tests create views w/o failure detection ports, so we must check the length // of the array if (idx < portsSize) { setFailureDetectionPort(mbr, ports[idx]); } else { setFailureDetectionPort(mbr, -1); } } idx += 1; } } }
newView.setFailureDetectionPorts(currentView); newView.setPublicKeys(currentView); newView.setFailureDetectionPort(this.localAddress, services.getHealthMonitor().getFailureDetectionPort());
private void setFailureDetectionPorts(NetView view) { int numMembers = members.size(); // use the membership port as the FD port so it's easy to figure out problems for (int i = 0; i < numMembers; i++) { view.setFailureDetectionPort(members.get(i), members.get(i).getPort()); } }
for (InternalDistributedMember mbr : joinReqs) { if (mbrs.contains(mbr)) { newView.setFailureDetectionPort(mbr, joinPorts.get(mbr));
int port = conflictingView.getFailureDetectionPort(mbr); newView.add(mbr); newView.setFailureDetectionPort(mbr, port); joinReqs.add(mbr); for (InternalDistributedMember mbr : newView.getMembers()) { if (tempView.contains(mbr)) { tempView.setFailureDetectionPort(mbr, newView.getFailureDetectionPort(mbr));
newView.setFailureDetectionPort(localAddress, services.getHealthMonitor().getFailureDetectionPort()); this.localAddress.setVmViewId(0);
newView.setFailureDetectionPort(newMember, v.getFailureDetectionPort(newMember)); newView.setPublicKey(newMember, v.getPublicKey(newMember));
@Test public void testAddLotsOfMembers() throws Exception { NetView view = new NetView(members.get(0), 2, new ArrayList<>(members)); setFailureDetectionPorts(view); NetView copy = new NetView(view, 2); int oldSize = view.size(); for (int i = 0; i < 100; i++) { InternalDistributedMember mbr = new InternalDistributedMember(SocketCreator.getLocalHost(), 2000 + i); mbr.setVmKind(ClusterDistributionManager.NORMAL_DM_TYPE); mbr.setVmViewId(2); view.add(mbr); view.setFailureDetectionPort(mbr, 2000 + i); } assertEquals(oldSize + 100, view.size()); for (InternalDistributedMember mbr : view.getMembers()) { assertEquals(mbr.getPort(), view.getFailureDetectionPort(mbr)); } assertEquals(100, view.getNewMembers(copy).size()); }