/** * Return the underlying port (membership port) * @return the underlying membership port */ public int getPort() { return netMbr.getPort(); }
/** * Return the underlying host address * * @return the underlying host address */ public InetAddress getInetAddress() { return netMbr.getInetAddress(); }
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; }
public void writeEssentialData(DataOutput out) throws IOException { Assert.assertTrue(vmKind > 0); DataSerializer.writeInetAddress(getInetAddress(), out); out.writeInt(getPort()); int flags = 0; if (netMbr.splitBrainEnabled()) flags |= SB_ENABLED_MASK; if (netMbr.preferredForCoordinator()) flags |= COORD_ENABLED_MASK; flags |= PARTIAL_ID_MASK; out.writeByte((byte)(flags & 0xff)); // out.writeInt(dcPort); out.writeByte(vmKind); if (this.vmKind == DistributionManager.LONER_DM_TYPE) { DataSerializer.writeString(this.uniqueTag, out); } else { // added in 6.5 for unique identifiers in P2P DataSerializer.writeString(String.valueOf(this.vmViewId), out); } // write name last to fix bug 45160 DataSerializer.writeString(this.name, out); if (InternalDataSerializer.getVersionForDataStream(out).compareTo(Version.GFE_90)>=0) { netMbr.writeAdditionalData(out); } }
if (netMbr.splitBrainEnabled()) flags |= SB_ENABLED_MASK; if (netMbr.preferredForCoordinator()) flags |= COORD_ENABLED_MASK; if (this.isPartial) flags |= PARTIAL_ID_MASK; out.writeByte((byte)(flags & 0xff));
netMbr = m; MemberAttributes attr = m.getAttributes(); this.hostName = SocketCreator.resolve_dns? SocketCreator.getHostName(m.getInetAddress()) : m.getInetAddress().getHostAddress(); this.durableClientAttributes = attr.getDurableClientAttributes(); this.version = m.getVersionOrdinal(); try { this.versionObj = Version.fromOrdinal(version, false);
InternalDistributedMember mbr = null; try { mbr = new InternalDistributedMember(nm.getIpAddress().getCanonicalHostName(), nm.getPort()-1, "fake_id", "fake_id_ustring"); tag.setMemberID(mbr); } catch (UnknownHostException e) {
public InternalDistributedMember getCoordinator() { synchronized (members) { for (InternalDistributedMember addr : members) { if (addr.getNetMember().preferredForCoordinator()) { return addr; } } if (members.size() > 0) { return members.get(0); } } return null; }
public void fromData(DataInput in) throws IOException, ClassNotFoundException { fromDataPre_GFE_9_0_0_0(in); // just in case this is just a non-versioned read // from a file we ought to check the version if (this.version >= Version.GFE_90.ordinal()) { try { netMbr.readAdditionalData(in); } catch (EOFException e) { // nope - it's from a pre-GEODE client or WAN site } } }
/** * 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 DistributionManager.NORMAL_DM_TYPE: result += 10; if (lead != null && mbr.equals(lead)) { result += 5; } break; case DistributionManager.LOCATOR_DM_TYPE: result += 3; break; case DistributionManager.ADMIN_ONLY_DM_TYPE: break; default: throw new IllegalStateException("Unknown member type: " + mbr.getVmKind()); } } return result; }
return this.netMbr.compareTo(other.netMbr); } else { return 0;
this.netMbr = MemberFactory.newNetMember(i, p, splitBrainEnabled, canBeCoordinator, Version.CURRENT_ORDINAL, attr); this.hostName = SocketCreator.resolve_dns? SocketCreator.getHostName(i) : i.getHostAddress(); this.version = netMbr.getVersionOrdinal(); try { this.versionObj = Version.fromOrdinal(version, false);
@Override public void run2() { InternalDistributedSystem system = (InternalDistributedSystem) InternalDistributedSystem.getAnyInstance(); JGroupMembershipManager jgmm = MembershipManagerHelper.getMembershipManager(system); JChannel jchannel = MembershipManagerHelper.getJChannel(system); NetMember locMem = system.getDistributedMember().getNetMember(); // Check if protocol statck has GemfireTimeSync protocol in it in // correct position. if (jchannel != null && jchannel.isConnected()) { ProtocolStack pstack = jchannel.getProtocolStack(); GemFireTimeSync gts = (GemFireTimeSync) pstack.findProtocol("GemFireTimeSync"); NetView nw = jgmm.getView(); IpAddress memAdd = null; for (Object member : nw) { InternalDistributedMember iMem = (InternalDistributedMember) member; NetMember netMem = iMem.getNetMember(); if (!netMem.equals(locMem)) { memAdd = ((JGroupMember)netMem).getAddress(); } } Message offsetMessage = new Message(); offsetMessage.setDest(memAdd); offsetMessage.isHighPriority = true; offsetMessage.putHeader("GemFireTimeSync", new GFTimeSyncHeader(0, /* GFTimeSyncHeader.OP_TIME_OFFSET */(byte) 2, (joinTimeOffset - 19))); gts.passDown(new Event(Event.MSG, offsetMessage)); getLogWriter().info("Sent a GemfireTimeSync message to apply lower offset: " + (joinTimeOffset - 19) + "ms"); } } });
if (netMbr.splitBrainEnabled()) flags |= SB_ENABLED_MASK; if (netMbr.preferredForCoordinator()) flags |= COORD_ENABLED_MASK; if (this.isPartial) flags |= PARTIAL_ID_MASK; DataSerializer.writeInteger(Integer.valueOf(this.durableClientAttributes==null ? 300 : this.durableClientAttributes.getTimeout()), out); Version.writeOrdinal(out, this.version, true); netMbr.writeAdditionalData(out);
if (netMbr.splitBrainEnabled()) flags |= SB_ENABLED_MASK; if (netMbr.preferredForCoordinator()) flags |= COORD_ENABLED_MASK; if (this.isPartial) flags |= PARTIAL_ID_MASK;
/** 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)); }
if (this.version >= Version.GFE_90.ordinal()) { try { netMbr.readAdditionalData(in); } catch (java.io.EOFException e) {
/** * logs the weight of failed members wrt the given previous * view */ public void logCrashedMemberWeights(NetView oldView, Logger log) { InternalDistributedMember lead = oldView.getLeadMember(); for (InternalDistributedMember mbr : this.crashedMembers) { if (!oldView.contains(mbr)) { continue; } int mbrWeight = mbr.getNetMember().getMemberWeight(); switch (mbr.getVmKind()) { case DistributionManager.NORMAL_DM_TYPE: if (lead != null && mbr.equals(lead)) { mbrWeight += 15; } else { mbrWeight += 10; } break; case DistributionManager.LOCATOR_DM_TYPE: mbrWeight += 3; break; case DistributionManager.ADMIN_ONLY_DM_TYPE: break; default: throw new IllegalStateException("Unknown member type: " + mbr.getVmKind()); } log.info(" " + mbr + " had a weight of " + mbrWeight); } }
if (mbr != coord && (coord==null || mbr.compareTo(coord) < 0)) { if (!rejections.contains(mbr) && (mbr.getNetMember().preferredForCoordinator() || !mbr.getNetMember().splitBrainEnabled())) { coord = mbr;
continue;// this is must to add if (addr.getNetMember().preferredForCoordinator()) { results.add(addr); if (results.size() >= maxNumberDesired) {