/** * return members added in this view */ public List<InternalDistributedMember> getNewMembers() { List<InternalDistributedMember> result = new ArrayList<InternalDistributedMember>(5); for (InternalDistributedMember mbr : this.members) { if (mbr.getVmViewId() == this.viewId) { result.add(mbr); } } return result; }
public static String getUniqueIDForMember(DistributedMember member) { InternalDistributedMember iMember = (InternalDistributedMember) member; final StringBuilder sb = new StringBuilder(); sb.append(iMember.getIpAddress().getHostAddress()); sb.append("<v" + iMember.getVmViewId() + ">"); // View ID will be 0 for // Loner, but in that case no // federation as well sb.append(iMember.getPort()); return makeCompliantName(sb.toString().toLowerCase());// Lower case to // handle IPv6 }
public static String getUniqueIDForMember(DistributedMember member) { InternalDistributedMember iMember = (InternalDistributedMember) member; final StringBuilder sb = new StringBuilder(); sb.append(iMember.getInetAddress().getHostAddress()); sb.append("<v" + iMember.getVmViewId() + ">"); // View ID will be 0 for // Loner, but in that case no // federation as well sb.append(iMember.getPort()); return makeCompliantName(sb.toString().toLowerCase());// Lower case to // handle IPv6 }
/** Create a TCPConduit stub from a JGroups InternalDistributedMember */ public Stub createConduitStub(InternalDistributedMember addr) { int port = addr.getDirectChannelPort(); Stub stub = new Stub(addr.getIpAddress(), port, addr.getVmViewId()); return stub; }
InternalDistributedMember mbr = resp.getCoordinator(); if (!state.alreadyTried.contains(mbr)) { boolean mbrIsNoob = (mbr.getVmViewId() < 0); if (mbrIsNoob) { if (coordIsNoob || mbr.getVmViewId() > coord.getVmViewId()) { coord = mbr; coordIsNoob = false;
@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(); }
public JGAddress(InternalDistributedMember idm) { super(); GMSMember mbr = (GMSMember)idm.getNetMember(); this.mostSigBits = mbr.getUuidMSBs(); this.leastSigBits = mbr.getUuidLSBs(); this.ip_addr = idm.getInetAddress(); this.port = idm.getPort(); this.vmViewId = idm.getVmViewId(); }
state.locatorsContacted++; if (!state.hasContactedAJoinedLocator && response.getSenderId() != null && response.getSenderId().getVmViewId() >= 0) { logger.debug("Locator's address indicates it is part of a distributed system " + "so I will not become membership coordinator on this attempt to join"); InternalDistributedMember mbr = it.next(); if (!state.alreadyTried.contains(mbr)) { boolean mbrIsNoob = (mbr.getVmViewId() < 0); if (mbrIsNoob) { if (coordIsNoob || mbr.getVmViewId() > coord.getVmViewId()) { coord = mbr; coordIsNoob = false;
return true; if (member.getVmViewId() < 0) { logger.warn("adding a surprise member that has not yet joined the distributed system: " + member, new Exception("stack trace")); if (latestView.getViewId() > member.getVmViewId()) {
private void processHeartbeatRequest(HeartbeatRequestMessage m) { this.stats.incHeartbeatRequestsReceived(); if (this.isStopping || this.playingDead) { return; } // only respond if the intended recipient is this member InternalDistributedMember me = localAddress; if (me.getVmViewId() >= 0 && m.getTarget().equals(me)) { HeartbeatMessage hm = new HeartbeatMessage(m.getRequestId()); hm.setRecipient(m.getSender()); Set<InternalDistributedMember> membersNotReceivedMsg = services.getMessenger().send(hm); this.stats.incHeartbeatsSent(); if (membersNotReceivedMsg != null && membersNotReceivedMsg.contains(m.getSender())) { logger.debug("Unable to send heartbeat to member: {}", m.getSender()); } } else { logger.debug("Ignoring heartbeat request intended for {}. My ID is {}", m.getTarget(), me); } }
/** * waits until we've joined the distributed system * before returning */ private void waitForAddressCompletion() { InternalDistributedMember myAddr = this.owner.getConduit().getLocalAddress(); synchronized (myAddr) { while ((owner.getConduit().getCancelCriterion().cancelInProgress() == null) && myAddr.getInetAddress() == null && myAddr.getVmViewId() < 0) { try { myAddr.wait(100); // spurious wakeup ok } catch (InterruptedException ie) { Thread.currentThread().interrupt(); this.owner.getConduit().getCancelCriterion().checkCancelInProgress(ie); } } Assert.assertTrue(myAddr.getDirectChannelPort() == this.owner.getConduit().getPort()); } }
this.birthViewId = response.getMemberID().getVmViewId(); this.localAddress.setVmViewId(this.birthViewId); GMSMember me = (GMSMember) this.localAddress.getNetMember();
return new Stub(m.getIpAddress(), m.getPort(), m.getVmViewId());
int rand = testing? 0 : NetView.RANDOM.nextInt(10); int viewNumber = currentView.getViewId() + 5 + rand; if (this.localAddress.getVmViewId() < 0) { this.localAddress.setVmViewId(viewNumber);
return true; if (latestView.getViewNumber() > member.getVmViewId()) { LocalizedStrings.DEBUG, "Membership: Received message from surprise member: <" + member + ">. My view number is " + latestView.getViewNumber() + " its is " + member.getVmViewId());
if (this.localAddress.equals(mbr)) { found = true; this.birthViewId = mbr.getVmViewId(); this.localAddress.setVmViewId(this.birthViewId); GMSMember me = (GMSMember) this.localAddress.getNetMember();
int viewId = sender.getVmViewId(); if (cv.getViewId() >= viewId && !cv.contains(incomingRequest.getSender())) { logger.info("Membership ignoring suspect request for " + incomingRequest + " from non-member " + incomingRequest.getSender());
DirectChannel dc = directChannel; InternalDistributedMember idm = (InternalDistributedMember)mbr; Stub stub = new Stub(idm.getIpAddress(), idm.getPort(), idm.getVmViewId()); int memberTimeout = this.dconfig.getMemberTimeout(); long pauseTime = (memberTimeout < 1000) ? 100 : memberTimeout / 10;
if (!v.contains(mbr) && mbr.getVmViewId() < v.getViewId()) { logger.debug("ignoring leave request from old member"); return;
int oldViewId = mbr.getVmViewId(); mbr.setVmViewId((int)mgr.getView().getViewNumber()-1); getLogWriter().info("current membership view is " + mgr.getView()); getLogWriter().info("created ID " + mbr + " with view ID " + mbr.getVmViewId()); sys.getLogWriter().info("<ExpectedException action=add>attempt to add old member</ExpectedException>"); sys.getLogWriter().info("<ExpectedException action=add>Removing shunned GemFire node</ExpectedException>");