/** * Given two DistributionManager ids, check to see if they are * from the same host address. * @param id1 a DistributionManager id * @param id2 a DistributionManager id * @return true if id1 and id2 are from the same host, false otherwise */ public static boolean isSameHost(InternalDistributedMember id1, InternalDistributedMember id2) { return (id1.getInetAddress().equals(id2.getInetAddress())); }
/** * 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 */ public boolean areOnEquivalentHost(InternalDistributedMember member1, InternalDistributedMember member2) { Set<InetAddress> equivalents1 = getEquivalents(member1.getInetAddress()); return equivalents1.contains(member2.getInetAddress()); }
public Set<InetAddress> getEquivalents(InetAddress in) { Set<InetAddress> value = new HashSet<InetAddress>(); value.add(this.getId().getInetAddress()); return value; }
@Override public Set<DistributedMember> findDistributedMembers(InetAddress address) { Set<InternalDistributedMember> allMembers = dm.getDistributionManagerIdsIncludingAdmin(); Set<DistributedMember> results = new HashSet<DistributedMember>(2); //Search through the set of all members for(InternalDistributedMember member: allMembers) { Set<InetAddress> equivalentAddresses = dm.getEquivalents(member.getInetAddress()); //Check to see if the passed in address is matches one of the addresses on //the given member. if(address.equals(member.getInetAddress()) || equivalentAddresses.contains(address)) { results.add(member); } } return results; }
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 }
public Set<InternalDistributedMember> getMembersInSameZone(InternalDistributedMember targetMember) { Set<InternalDistributedMember> buddyMembers = new HashSet<InternalDistributedMember>(); if(!redundancyZones.isEmpty()) { synchronized(redundancyZones) { String targetZone = redundancyZones.get(targetMember); for(Map.Entry<InternalDistributedMember, String> entry : redundancyZones.entrySet()) { if(entry.getValue().equals(targetZone)) { buddyMembers.add(entry.getKey()); } } } } else { buddyMembers.add(targetMember); Set targetAddrs = getEquivalents(targetMember.getInetAddress()); for (Iterator i = getDistributionManagerIds().iterator(); i.hasNext();) { InternalDistributedMember o = (InternalDistributedMember)i.next(); if (SetUtils.intersectsWith(targetAddrs, getEquivalents(o.getInetAddress()))) { buddyMembers.add(o); } } } return buddyMembers; }
for (Iterator it=ids.iterator(); it.hasNext(); ) { InternalDistributedMember mbr = (InternalDistributedMember)it.next(); if (mbr.getProcessId() > 0 && mbr.getInetAddress().equals(this.myid.getInetAddress())) { if (!mbr.equals(myid)) { if (!OSProcess.printStacks(mbr.getProcessId(), false)) {
/** * During final check, establish TCP connection between current member and suspect member. * And exchange PING/PONG message to see if the suspect member is still alive. * * @param suspectMember member that does not respond to HeartbeatRequestMessage * @return true if successfully exchanged PING/PONG with TCP connection, otherwise false. */ private boolean doTCPCheckMember(InternalDistributedMember suspectMember, int port) { Socket clientSocket = null; try { logger.debug("Checking member {} with TCP socket connection {}:{}.", suspectMember, suspectMember.getInetAddress(), port); clientSocket = SocketCreator.getDefaultInstance().connect(suspectMember.getInetAddress(), port, (int)memberTimeout, new ConnectTimeoutTask(services.getTimer(), memberTimeout), false, -1, false); clientSocket.setTcpNoDelay(true); return doTCPCheckMember(suspectMember, clientSocket); } catch (IOException e) { logger.debug("Unexpected exception", e); } finally { try { if (clientSocket != null) { clientSocket.close(); } } catch (IOException e) { logger.trace("Unexpected exception", e); } } return false; }
InetAddress myAddr = getInetAddress(); InetAddress otherAddr = other.getInetAddress();
String host; InetAddress add = getInetAddress(); if (add.isMulticastAddress()) host = add.getHostAddress();
public PersistentID getPersistentID() { InetAddress host = cache.getDistributedSystem().getDistributedMember() .getInetAddress(); String dir = getDiskDirs()[0].getAbsolutePath(); return new PersistentMemberPattern(host, dir, this.diskStoreID.toUUID(), 0); }
Map.Entry entry = (Map.Entry)it.next(); ConnectingSocketInfo info = (ConnectingSocketInfo)entry.getValue(); if (info.peerAddress.equals(((InternalDistributedMember)memberID).getInetAddress())) { toRemove.add(entry.getKey()); it.remove();
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(); }
public PersistentMemberID generatePersistentID(DiskRegionView dr) { File firstDir = getInfoFileDir().getDir(); InternalDistributedSystem ids = getCache().getDistributedSystem(); InternalDistributedMember memberId = ids.getDistributionManager() .getDistributionManagerId(); //NOTE - do NOT use DM.cacheTimeMillis here. See bug #49920 long timestamp = System.currentTimeMillis(); PersistentMemberID id = new PersistentMemberID(getDiskStoreID(), memberId.getInetAddress(), firstDir.getAbsolutePath(), memberId.getName(), timestamp, (short) 0); return id; }
byte[] address = getInetAddress().getAddress();
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); } }
DataSerializer.writeInetAddress(getInetAddress(), out); out.writeInt(getPort());
DataSerializer.writeInetAddress(getInetAddress(), out); out.writeInt(getPort());
/** * 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()); } }
@Override public void started() { setLocalAddress( services.getMessenger().getMemberID()); serverSocket = createServerSocket(localAddress.getInetAddress(), services.getConfig().getMembershipPortRange()); startTcpServer(serverSocket); startHeartbeatThread(); }