/** * Return fake, temporary DistributedMember to represent the other vm this vm is connecting to * * @param sock the socket this handshake is operating on * @return temporary id to reprent the other vm */ private InternalDistributedMember getIDForSocket(Socket sock) { return new InternalDistributedMember(sock.getInetAddress(), sock.getPort(), false); }
private MembershipEvent createEvent(InternalDistributedMember id) { final String memberId = id.getId(); final DistributedMember member = id; return new MembershipEvent() { @Override public String getMemberId() { return memberId; } @Override public DistributedMember getDistributedMember() { return member; } }; }
@Override public boolean equals(Object other) { if (!(other instanceof Member)) { return false; } Member o = (Member) other; return this.memberId.equals(o.memberId); }
/** this reads an ID written with writeEssentialData */ public static InternalDistributedMember readEssentialData(DataInput in) throws IOException, ClassNotFoundException { final InternalDistributedMember mbr = new InternalDistributedMember(); mbr._readEssentialData(in); return mbr; }
/** * Updates this SystemMember instance using the corresponding InternalDistributedMember * * @param member InternalDistributedMember instance to update this SystemMember * * @since GemFire 6.5 */ private void updateByInternalDistributedMember(InternalDistributedMember member) { if (member != null) { this.internalId = member; this.id = this.internalId.toString(); this.host = this.internalId.getHost(); this.name = this.internalId.getName(); if (this.name == null || DistributionConfig.DEFAULT_NAME.equals(this.name)) { /* * name could be null & referring to description of a fix for 32877 */ this.name = this.id; } } }
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(); }
private Map<String, String> prepareUserData(AlertDetails details) { Map<String, String> userData = new HashMap<>(); userData.put(JMXNotificationUserData.ALERT_LEVEL, AlertDetails.getAlertLevelAsString(details.getAlertLevel())); String source = details.getSource(); userData.put(JMXNotificationUserData.THREAD, source); InternalDistributedMember sender = details.getSender(); String nameOrId = memberSource; if (sender != null) { nameOrId = sender.getName(); nameOrId = StringUtils.isNotBlank(nameOrId) ? nameOrId : sender.getId(); } userData.put(JMXNotificationUserData.MEMBER, nameOrId); return userData; }
@Override // DM method public void retainMembersWithSameOrNewerVersion(Collection<InternalDistributedMember> members, Version version) { for (Iterator<InternalDistributedMember> it = members.iterator(); it.hasNext();) { InternalDistributedMember id = it.next(); if (id.getVersionObject().compareTo(version) < 0) { it.remove(); } } }
private int getWeight(Collection<InternalDistributedMember> idms, InternalDistributedMember leader) { int weight = 0; for (InternalDistributedMember mbr : idms) { int thisWeight = mbr.getNetMember().getMemberWeight(); if (mbr.getVmKind() == 10 /* NORMAL_DM_KIND */) { thisWeight += 10; if (leader != null && mbr.equals(leader)) { thisWeight += 5; } } else if (mbr.getNetMember().preferredForCoordinator()) { thisWeight += 3; } weight += thisWeight; } return weight; }
/** * Combines the ip address and port of a distributed member to create a unique identifier for the * member. As this string will be used in file names, the periods (ipv4) and colons (ipv6) are * stripped out. * * @param member the member to create a unique id for * @return a String based on the ip address and host of the member */ private String createUniqueId(InternalDistributedMember member) { String address = member.getInetAddress().getHostAddress(); String alphanumericAddress = address.replaceAll("\\.|:", ""); int port = member.getPort(); return alphanumericAddress + port; } }
boolean statsOnly = false; InternalDistributedMember member1 = new InternalDistributedMember("member1", 12345); member1.getNetMember().setName("member1"); Set<DistributedMember> testMembers = new HashSet<>(); testMembers.add(member1); StringBuilder sb = new StringBuilder().append("Estimated disk space required (") .append(bytesToString.of(GIGABYTE)).append(") to consolidate logs on member ") .append(member1.getName()).append(" will exceed available disk space (") .append(bytesToString.of(500 * MEGABYTE)).append(")"); testResults1.addResult(member1, new ManagementException(sb.toString()));
public static String getUniqueIDForMember(DistributedMember member) { InternalDistributedMember iMember = (InternalDistributedMember) member; final StringBuilder sb = new StringBuilder(); sb.append(iMember.getInetAddress().getHostAddress()); // View ID will be 0 for Loner, but in that case no federation as well sb.append("<v").append(iMember.getVmViewId()).append(">"); sb.append(iMember.getPort()); // Lower case to handle IPv6 return makeCompliantName(sb.toString().toLowerCase()); }
@Override public long getMembershipPort() { return localAddress.getPort(); }
@Override public int hashCode() { int result = 17; final int mult = 37; result = mult * result + (this.memberId == null ? 0 : this.memberId.hashCode()); result = mult * result + this.id; return result; }
public InternalDistributedMember getLeadMember() { for (InternalDistributedMember mbr : this.members) { if (mbr.getVmKind() == ClusterDistributionManager.NORMAL_DM_TYPE) { return mbr; } } return null; }
/** check to see if the given address is next in line to be coordinator */ public boolean shouldBeCoordinator(InternalDistributedMember who) { Iterator<InternalDistributedMember> it = this.members.iterator(); InternalDistributedMember firstNonPreferred = null; while (it.hasNext()) { InternalDistributedMember mbr = it.next(); if (mbr.getNetMember().preferredForCoordinator()) { return mbr.equals(who); } else if (firstNonPreferred == null) { firstNonPreferred = mbr; } } return (firstNonPreferred == null || firstNonPreferred.equals(who)); }
private void logSuspectRequests(SuspectMembersMessage incomingRequest, InternalDistributedMember sender) { for (SuspectRequest req : incomingRequest.getMembers()) { String who = sender.equals(localAddress) ? "myself" : sender.toString(); logger.info("received suspect message from {} for {}: {}", who, req.getSuspectMember(), req.getReason()); } }
public void initialize() { receivedAcks = new ConcurrentHashSet<>(); pingPonger = new GMSPingPonger(); myAddress = (JGAddress) channel.down(new Event(Event.GET_LOCAL_ADDRESS)); addressConversionMap = new ConcurrentHashMap<>(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(); }
/** * Returns true if the two members are on the same equivalent host based on overlapping IP * addresses collected for all NICs during exchange of startup messages. * * @param member1 First member * @param member2 Second member */ @Override public boolean areOnEquivalentHost(InternalDistributedMember member1, InternalDistributedMember member2) { Set<InetAddress> equivalents1 = getEquivalents(member1.getInetAddress()); return equivalents1.contains(member2.getInetAddress()); }
public PersistentMemberID generatePersistentID(DiskRegionView dr) { File firstDir = getInfoFileDir().getDir(); InternalDistributedSystem ids = getCache().getInternalDistributedSystem(); InternalDistributedMember memberId = ids.getDistributionManager().getDistributionManagerId(); // NOTE - do NOT use DM.cacheTimeMillis here. See bug #49920 long timestamp = System.currentTimeMillis(); return new PersistentMemberID(getDiskStoreID(), memberId.getInetAddress(), firstDir.getAbsolutePath(), memberId.getName(), timestamp, (short) 0); }