public InternalDistributedMember getCoordinator() { synchronized (membersLock) { for (InternalDistributedMember addr : members) { if (addr.getNetMember().preferredForCoordinator()) { return addr; } } if (members.size() > 0) { return members.get(0); } } return null; }
/** * Returns the port on which the direct channel runs */ public int getDirectChannelPort() { assert !this.isPartial; return netMbr.getDirectPort(); }
/** * Returns this client member's durable attributes or null if no durable attributes were created. */ @Override public DurableClientAttributes getDurableClientAttributes() { assert !this.isPartial; DurableClientAttributes attributes = netMbr.getDurableClientAttributes(); if (attributes == null) { attributes = new DurableClientAttributes("", 300); netMbr.setDurableClientAttributes(attributes); } return netMbr.getDurableClientAttributes(); }
/** * Construct a InternalDistributedMember based on the given NetMember. * <p> * This is not the preferred way of creating an instance since the NetMember may not have all * required information (e.g., a JGroups address without direct-port and other information). * */ public InternalDistributedMember(NetMember m) { netMbr = m; this.hostName = SocketCreator.resolve_dns ? SocketCreator.getHostName(m.getInetAddress()) : m.getInetAddress().getHostAddress(); short version = m.getVersionOrdinal(); try { this.versionObj = Version.fromOrdinal(version, false); } catch (UnsupportedVersionException e) { this.versionObj = Version.CURRENT; } cachedToString = null; this.isPartial = true; }
Assert.assertTrue(netMbr.getVmKind() > 0); if (netMbr.isNetworkPartitionDetectionEnabled()) flags |= NPD_ENABLED_BIT; if (netMbr.preferredForCoordinator()) flags |= COORD_ENABLED_BIT; if (this.isPartial) out.writeByte((byte) (flags & 0xff)); out.writeInt(netMbr.getDirectPort()); out.writeInt(netMbr.getProcessId()); out.writeInt(netMbr.getVmKind()); out.writeInt(netMbr.getVmViewId()); DataSerializer.writeStringArray(netMbr.getGroups(), out); DataSerializer.writeString(netMbr.getName(), out); DataSerializer.writeString(this.uniqueTag, out); DurableClientAttributes attributes = netMbr.getDurableClientAttributes(); DataSerializer.writeString(attributes == null ? "" : attributes.getId(), out); DataSerializer.writeInteger(Integer.valueOf(attributes == null ? 300 : attributes.getTimeout()), out); Version.writeOrdinal(out, netMbr.getVersionOrdinal(), true); netMbr.writeAdditionalData(out);
@Override public void writeEssentialData(DataOutput out) throws IOException { Assert.assertTrue(netMbr.getVmKind() > 0); DataSerializer.writeInetAddress(getInetAddress(), out); out.writeInt(getPort()); int flags = 0; if (netMbr.isNetworkPartitionDetectionEnabled()) flags |= NPD_ENABLED_BIT; if (netMbr.preferredForCoordinator()) flags |= COORD_ENABLED_BIT; flags |= PARTIAL_ID_BIT; out.writeByte((byte) (flags & 0xff)); // out.writeInt(dcPort); byte vmKind = netMbr.getVmKind(); out.writeByte(vmKind); if (vmKind == ClusterDistributionManager.LONER_DM_TYPE) { DataSerializer.writeString(this.uniqueTag, out); } else { // added in 6.5 for unique identifiers in P2P DataSerializer.writeString(String.valueOf(netMbr.getVmViewId()), out); } // write name last to fix bug 45160 DataSerializer.writeString(netMbr.getName(), out); Version outputVersion = InternalDataSerializer.getVersionForDataStream(out); if (0 <= outputVersion.compareTo(Version.GFE_90) && outputVersion.compareTo(Version.GEODE_110) < 0) { netMbr.writeAdditionalData(out); } }
netMbr = MemberFactory.newNetMember(addr, p, false, true, Version.CURRENT_ORDINAL, mattr); defaultToCurrentHost(); netMbr.setName(n); this.uniqueTag = u; netMbr.setVmKind(vmKind); netMbr.setDirectPort(p); netMbr.setDurableClientAttributes(attr); this.hostName = host; netMbr.setGroups(groups);
int vmPid = netMbr.getProcessId(); int vmKind = netMbr.getVmKind(); if (vmPid > 0 || vmKind != ClusterDistributionManager.NORMAL_DM_TYPE || !"".equals(myName)) { sb.append("("); sb.append(")"); if (vmKind != ClusterDistributionManager.LONER_DM_TYPE && netMbr.preferredForCoordinator()) { sb.append("<ec>");
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; }
for (InternalDistributedMember mbr : registrants) { if (mbr != coordinator && (coordinator == null || mbr.compareTo(coordinator) < 0)) { if (!rejections.contains(mbr) && (mbr.getNetMember().preferredForCoordinator() || !mbr.getNetMember().isNetworkPartitionDetectionEnabled())) { coordinator = mbr;
members[i++].getNetMember().setPreferredForCoordinator(true); members[i++].getNetMember().setPreferredForCoordinator(true); members[i++].getNetMember().setPreferredForCoordinator(false); members[i++].getNetMember().setPreferredForCoordinator(false); members[i++].getNetMember().setPreferredForCoordinator(false); members[i++].getNetMember().setPreferredForCoordinator(false); assertTrue(!leader.getNetMember().preferredForCoordinator()); joiningMember.getNetMember().setPreferredForCoordinator(false);
/** * Return the underlying host address * * @return the underlying host address */ public InetAddress getInetAddress() { return netMbr.getInetAddress(); }
/** * returns the weight of the members in this membership view */ public int memberWeight() { int result = 0; InternalDistributedMember lead = getLeadMember(); for (InternalDistributedMember mbr : this.members) { result += mbr.getNetMember().getMemberWeight(); switch (mbr.getVmKind()) { case ClusterDistributionManager.NORMAL_DM_TYPE: result += 10; if (lead != null && mbr.equals(lead)) { result += 5; } break; case ClusterDistributionManager.LOCATOR_DM_TYPE: result += 3; break; case ClusterDistributionManager.ADMIN_ONLY_DM_TYPE: break; default: throw new IllegalStateException("Unknown member type: " + mbr.getVmKind()); } } return result; }
@Override public List<String> getGroups() { return Collections.unmodifiableList(Arrays.asList(netMbr.getGroups())); }
/** * Return the underlying port (membership port) * * @return the underlying membership port */ public int getPort() { return netMbr.getPort(); }
/** * Returns the name of this member's distributed system connection or null if no name was * specified. * * @see org.apache.geode.distributed.DistributedSystem#getName */ @Override public String getName() { String result = netMbr.getName(); if (result == null) { result = ""; } return result; }
return this.netMbr.compareAdditionalData(other.netMbr); } else { return 0;
public void toDataPre_GFE_7_1_0_0(DataOutput out) throws IOException { Assert.assertTrue(netMbr.getVmKind() > 0); if (netMbr.isNetworkPartitionDetectionEnabled()) flags |= NPD_ENABLED_BIT; if (netMbr.preferredForCoordinator()) flags |= COORD_ENABLED_BIT; if (this.isPartial) out.writeByte((byte) (flags & 0xff)); out.writeInt(netMbr.getDirectPort()); out.writeInt(netMbr.getProcessId()); out.writeByte(netMbr.getVmKind()); DataSerializer.writeStringArray(netMbr.getGroups(), out); DataSerializer.writeString(netMbr.getName(), out); int vmKind = netMbr.getVmKind(); if (vmKind == ClusterDistributionManager.LONER_DM_TYPE) { DataSerializer.writeString(this.uniqueTag, out); } else { // added in 6.5 for unique identifiers in P2P DataSerializer.writeString(String.valueOf(netMbr.getVmViewId()), out); DurableClientAttributes durableClientAttributes = netMbr.getDurableClientAttributes(); DataSerializer .writeString(durableClientAttributes == null ? "" : durableClientAttributes.getId(), out);
member1.getNetMember().setName("member1"); Set<DistributedMember> testMembers = new HashSet<>(); testMembers.add(member1);