public static void verifyMembers(Integer numExpectedMembers) { DistributedSystem ds = InternalDistributedSystem.getAnyInstance(); JGroupMembershipManager mgr = MembershipManagerHelper .getMembershipManager(ds); assertEquals(numExpectedMembers.intValue(), mgr.getView().size()); }
@Override public void leave() { boolean waitForProcessing = false; synchronized (viewInstallationLock) { NetView view = currentView; isStopping = true; stopCoordinatorServices(); if (view != null) { if (view.size() > 1) { List<InternalDistributedMember> coords = view.getPreferredCoordinators(Collections.<InternalDistributedMember> emptySet(), localAddress, 5); logger.debug("JoinLeave sending a leave request to {}", coords); LeaveRequestMessage m = new LeaveRequestMessage(coords, this.localAddress, "this member is shutting down"); services.getMessenger().send(m); waitForProcessing = true; } // view.size } // view != null } if (waitForProcessing) { try { Thread.sleep(LEAVE_MESSAGE_SLEEP_TIME); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } }
void sendCurrentView() { NetView v = currentView; if (v != null) { InstallViewMessage msg = new InstallViewMessage(v, services.getAuthenticator().getCredentials(localAddress)); Collection<InternalDistributedMember> recips = new ArrayList<>(v.size() + v.getCrashedMembers().size()); recips.addAll(v.getMembers()); recips.remove(localAddress); recips.addAll(v.getCrashedMembers()); msg.setRecipients(recips); // use sendUnreliably since we are sending to crashed members & // don't want any retransmission tasks set up for them services.getMessenger().sendUnreliably(msg); } }
public void initialize() { receivedAcks = new ConcurrentHashSet<InternalDistributedMember>(); pingPonger = new GMSPingPonger(); // UUID logicalAddress = (UUID) channel.getAddress(); // IpAddress ipaddr = (IpAddress) channel.down(new Event(Event.GET_PHYSICAL_ADDRESS)); // // myAddress = new JGAddress(logicalAddress, ipaddr); myAddress = (JGAddress)channel.down(new Event(Event.GET_LOCAL_ADDRESS)); addressConversionMap = new ConcurrentHashMap<SocketAddress, InternalDistributedMember>(this.lastView.size()); List<InternalDistributedMember> members = this.lastView.getMembers(); for (InternalDistributedMember addr : members) { SocketAddress sockaddr = new InetSocketAddress(addr.getNetMember().getInetAddress(), addr.getPort()); addressConversionMap.put(sockaddr, addr); } isDebugEnabled = logger.isDebugEnabled(); resume(); }
@Override public void installView(NetView v) { this.view = v; if (this.jgAddress.getVmViewId() < 0) { this.jgAddress.setVmViewId(this.localAddress.getVmViewId()); } List<JGAddress> mbrs = new ArrayList<JGAddress>(v.size()); for (InternalDistributedMember idm: v.getMembers()) { mbrs.add(new JGAddress(idm)); } ViewId vid = new ViewId(new JGAddress(v.getCoordinator()), v.getViewId()); View jgv = new View(vid, new ArrayList<Address>(mbrs)); logger.trace("installing JGroups view: {}", jgv); this.myChannel.down(new Event(Event.VIEW_CHANGE, jgv)); addressesWithioExceptionsProcessed.clear(); }
int numMembers = view.size(); for (int i=0; i<numMembers; i++) { if (i > 0) {
for (int i = 0; i < newView.size(); i++) { // additions InternalDistributedMember m = newView.elementAt(i);
calculatedLen = v.size(); calculatedMembers = new LinkedList<GMSMember>(); for (int i = 0; i < calculatedLen; i ++) {