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; }
/** 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)); }
/** * Returns the coordinator of this view, rejecting any in the * given collection of IDs */ public InternalDistributedMember getCoordinator(Collection<InternalDistributedMember> rejections) { if (rejections == null) { return getCoordinator(); } synchronized (members) { for (InternalDistributedMember addr : members) { if (addr.getNetMember().preferredForCoordinator() && !rejections.contains(addr)) { return addr; } } for (InternalDistributedMember addr: members) { if (!rejections.contains(addr)) { return addr; } } } return null; }
continue;// this is must to add if (addr.getNetMember().preferredForCoordinator()) { results.add(addr); if (results.size() >= maxNumberDesired) {
sb.append(")"); if (netMbr.preferredForCoordinator()) { sb.append("<ec>");
if (localAddress.getNetMember().preferredForCoordinator()) {
if (found) { logger.debug("found possible coordinator {}", state.possibleCoordinator); if (localAddress.getNetMember().preferredForCoordinator() && state.possibleCoordinator.equals(this.localAddress)) { if (tries > 2 || System.currentTimeMillis() < giveupTime ) {
if (netMbr.preferredForCoordinator()) flags |= COORD_ENABLED_MASK; if (this.isPartial) flags |= PARTIAL_ID_MASK;
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); } }
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; }
if (netMbr.preferredForCoordinator()) flags |= COORD_ENABLED_MASK; if (this.isPartial) flags |= PARTIAL_ID_MASK; out.writeByte((byte)(flags & 0xff));
if (netMbr.preferredForCoordinator()) flags |= COORD_ENABLED_MASK; if (this.isPartial) flags |= PARTIAL_ID_MASK;
if (mbr != coord && (coord==null || mbr.compareTo(coord) < 0)) { if (!rejections.contains(mbr) && (mbr.getNetMember().preferredForCoordinator() || !mbr.getNetMember().splitBrainEnabled())) { coord = mbr;
if (!this.localAddress.getNetMember().preferredForCoordinator() && incomingRequest.getMemberID().getNetMember().preferredForCoordinator()) { JoinResponseMessage m = new JoinResponseMessage(incomingRequest.getMemberID(), currentView, true); services.getMessenger().send(m);